alembic的常用参数

命令和参数解释

1 .init:创建一个alembic仓库。
2 .revision:创建一个新的版本文件。
3 .--autogenerate:自动将当前的模型修改,生成迁移脚本。
4 .-m:本次迁移做了哪些修改,用户可以指定这个参数,方便回顾。
5 .upgrade:将指定版本的迁移文件映射到数据库中,会执行版本文件中的upgrade函数。如果有多个迁移脚本没有被映射到数据库中,那么会执行多个迁移脚本。
6 .head:代表最新的迁移脚本的版本号
7 .downgrade:会执行指定版本的迁移文件中的downgrade函数。
8 .heads:展示head指向的脚本文件版本号。
9 .history:列出所有的迁移版本及其信息。
10 .curren:展示当前数据库的版本号。

另外,当第一次执行upgrade的时候,就会给数据库中创建一个名叫alembic_version表,这个表只会有一条数据,记录当前数据库映射的是哪个版本的迁移文件。

经典错误

1 .FAILED: Target database is not up to date.

原因:主要是head和current不相同。current落后于heads的版本。
解决办法:将current移动到head上。 alembic upgrade head。

2 .FAILED: can't locate revision identified by '.*?'

原因:数据库中存的版本号不在迁移脚本的文件中。
解决方法:删除数据库中的 alembic_vision表中的数据,重新执行alembic upgrade head。

3 .执行upgrade head时候报某个表已经存在的错误。

  • 原因:执行这个命令的时候,会执行所有的迁移脚本,因为数据库中已经存在了这个表。然后迁移脚本中又包含了创建表的代码。
  • 解决办法:删除version中的所有的迁移文件。 修改迁移文件的代码
01-17 00:40