feat(market-data): 迁移 Tushare 同步到 PostgreSQL

This commit is contained in:
yuxuanhui
2026-08-05 17:57:32 +08:00
parent e69bcbe821
commit d7d5ed8979
34 changed files with 3230 additions and 3 deletions
@@ -0,0 +1,31 @@
import os
from pathlib import Path
import pytest
from alembic import command
from alembic.config import Config
from sqlalchemy import Engine, create_engine, inspect
@pytest.mark.integration
def test_postgres_migration_creates_market_data_contract() -> None:
database_url = os.getenv("ZHIXING_TEST_DATABASE_URL")
if not database_url:
pytest.skip("set ZHIXING_TEST_DATABASE_URL to run PostgreSQL integration tests")
server_root = Path(__file__).parents[2]
config = Config(str(server_root / "alembic.ini"))
config.set_main_option("sqlalchemy.url", database_url.replace("%", "%%"))
engine: Engine = create_engine(database_url)
command.upgrade(config, "head")
try:
tables = set(inspect(engine).get_table_names())
assert {
"market_stock",
"market_daily_bar",
"market_daily_basic",
"market_sync_batch",
"market_sync_item",
} <= tables
finally:
engine.dispose()