|
|
|
@ -4,12 +4,19 @@
|
|
|
|
import logging
|
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
|
|
from sqlalchemy import create_engine
|
|
|
|
from sqlalchemy import create_engine
|
|
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
from sqlalchemy.orm import make_transient, sessionmaker
|
|
|
|
|
|
|
|
|
|
|
|
from app.config import DB_PATH
|
|
|
|
from app.config import DB_PATH
|
|
|
|
from app.models import MarketData, SymbolTimestamp
|
|
|
|
from app.models import MarketData, SymbolTimestamp
|
|
|
|
from app.mysql_database import MySQLSessionLocal
|
|
|
|
from app.mysql_database import MySQLSessionLocal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _prepare_records_for_new_session(records):
|
|
|
|
|
|
|
|
"""将 ORM 实例转换为可在新 session 中插入的 transient 状态。"""
|
|
|
|
|
|
|
|
for record in records:
|
|
|
|
|
|
|
|
make_transient(record)
|
|
|
|
|
|
|
|
record.id = None
|
|
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -48,6 +55,9 @@ def migrate_sqlite_to_mysql():
|
|
|
|
finally:
|
|
|
|
finally:
|
|
|
|
sqlite_session.close()
|
|
|
|
sqlite_session.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_prepare_records_for_new_session(market_data_records)
|
|
|
|
|
|
|
|
_prepare_records_for_new_session(symbol_timestamp_records)
|
|
|
|
|
|
|
|
|
|
|
|
if market_data_records:
|
|
|
|
if market_data_records:
|
|
|
|
mysql_session.add_all(market_data_records)
|
|
|
|
mysql_session.add_all(market_data_records)
|
|
|
|
if symbol_timestamp_records:
|
|
|
|
if symbol_timestamp_records:
|
|
|
|
|