Skip to content

Commit 2b35f7e

Browse files
committed
🐛 fix(alembic): sync fail when db is not up to date
1 parent 19950e5 commit 2b35f7e

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

nonebot_plugin_orm/__main__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import click
99
from alembic.script import Script
10-
from sqlalchemy.util import greenlet_spawn
1110

1211
from . import migrate
1312
from .config import plugin_config

nonebot_plugin_orm/migrate.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
from alembic.util.editor import open_in_editor
2323
from alembic.runtime.migration import StampStep
2424
from alembic.script import Script, ScriptDirectory
25-
from alembic.autogenerate.api import RevisionContext
2625
from alembic.util.langhelpers import rev_id as _rev_id
2726
from alembic.migration import RevisionStep, MigrationContext
27+
from alembic.autogenerate.api import RevisionContext, compare_metadata
2828
from alembic.runtime.environment import EnvironmentContext, ProcessRevisionDirectiveFn
2929

3030
from .utils import is_editable, return_progressbar
@@ -664,17 +664,14 @@ def sync(config: Config, revision: str | None = None):
664664
)
665665

666666
def retrieve_migrations(
667-
rev: tuple[str, ...], context: MigrationContext
667+
_, context: MigrationContext
668668
) -> list[RevisionStep] | tuple[()]:
669-
if not revision:
670-
revision_context.run_autogenerate(rev, context)
671-
migration_script = revision_context.generated_revisions[-1]
672-
diffs = cast(UpgradeOps, migration_script.upgrade_ops).as_diffs()
673-
if not diffs:
674-
return ()
669+
assert context.connection
670+
671+
if not (revision or compare_metadata(context, context.opts["target_metadata"])):
672+
return ()
675673

676674
metadata = MetaData()
677-
assert context.connection
678675
metadata.reflect(context.connection)
679676
metadata.drop_all(context.connection)
680677

0 commit comments

Comments
 (0)