mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-08 21:03:00 +08:00
finish auto migrate
This commit is contained in:
parent
33bd938ad5
commit
39a0d21e57
@ -1,11 +1,12 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import nonebot
|
import nonebot
|
||||||
from alembic import command
|
|
||||||
from alembic.config import Config
|
from alembic.config import Config
|
||||||
from alembic.runtime.environment import EnvironmentContext
|
from alembic.runtime.environment import EnvironmentContext
|
||||||
from alembic.script.base import ScriptDirectory
|
from alembic.script.base import ScriptDirectory
|
||||||
|
from nonebot.log import logger
|
||||||
from nonebot_plugin_datastore import PluginData, create_session, db
|
from nonebot_plugin_datastore import PluginData, create_session, db
|
||||||
|
from sqlalchemy.engine.base import Connection
|
||||||
|
|
||||||
from .db_model import Base
|
from .db_model import Base
|
||||||
|
|
||||||
@ -18,22 +19,19 @@ async def upgrade_db():
|
|||||||
alembic_cfg.set_main_option(
|
alembic_cfg.set_main_option(
|
||||||
"script_location", str(Path(__file__).parent.joinpath("migrate"))
|
"script_location", str(Path(__file__).parent.joinpath("migrate"))
|
||||||
)
|
)
|
||||||
alembic_cfg.set_main_option("sqlalchemy.url", "")
|
|
||||||
command.upgrade(alembic_cfg, "head")
|
|
||||||
|
|
||||||
script = ScriptDirectory.from_config(alembic_cfg)
|
script = ScriptDirectory.from_config(alembic_cfg)
|
||||||
|
engine = db.get_engine()
|
||||||
|
env = EnvironmentContext(alembic_cfg, script)
|
||||||
|
|
||||||
def upgrade(rev, context):
|
def migrate_fun(revision, context):
|
||||||
return script._upgrade_revs("head", rev)
|
return script._upgrade_revs("head", revision)
|
||||||
|
|
||||||
with EnvironmentContext(
|
def do_run_migration(connection: Connection):
|
||||||
alembic_cfg,
|
env.configure(connection, target_metadata=Base.metadata, fn=migrate_fun)
|
||||||
script,
|
with env.begin_transaction():
|
||||||
fn=upgrade,
|
env.run_migrations()
|
||||||
as_sql=False,
|
logger.info("Finish auto migrate")
|
||||||
starting_rev=None,
|
|
||||||
destination_rev="head",
|
async with engine.connect() as connection:
|
||||||
tag=None,
|
await connection.run_sync(do_run_migration)
|
||||||
target_metadata=Base.metadata,
|
|
||||||
):
|
|
||||||
script.run_env()
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user