Alembic 不生成表格

iva*_*lho 4 python sqlalchemy alembic

我第一次跑步

alembic revision --autogenerate -m "init"
Run Code Online (Sandbox Code Playgroud)

它在我的数据库中生成表。

删除数据库后,删除脚本的版本,并尝试再次运行 alembic。他不再产生任何东西。

我已经尝试再次安装 alembic,但没有任何效果。我已经搜索了很多解决方案,但没有一个有效。

我缺少一些配置吗?

Che*_*che 6

Alembic“知道”您已经运行了该迁移,然后它不会再次运行它(即使您删除表或重新安装 alembic)。

这里发生的过程包括 Alembic 首先检查数据库是否有一个名为 的表alembic_version,如果没有,则创建它。它在此表中查找当前版本(如果有),然后计算从该版本到请求的版本的路径,在本例中为head,已知为1975ea83b712。然后,它调用upgrade()每个文件中的方法以获取目标修订版本。 https://alembic.sqlalchemy.org/en/latest/tutorial.html#running-our-first-migration

您需要告诉 alembicdowngrade您的迁移才能再次运行它。为此,只需致电:

alembic downgrade -1
Run Code Online (Sandbox Code Playgroud)

然后您可以通过调用以下命令再次运行上次迁移:

alembic upgrade head
Run Code Online (Sandbox Code Playgroud)

这里有更多信息。