flask-migrate按字母顺序进行迁移

时间:2019-05-25 15:21:58

标签: python flask flask-sqlalchemy alembic

使用flask-migrateflask-script,我设置了项目,这样我只需要做

python manage.py db migrate

在迁移文件夹中,我得到了诸如

的文件
0f46602752b7_.py
8fdf8259859b_.py

不能保证第一次迁移先于第二次迁移。 Django通过为所有迁移添加一个自动递增的数字来解决此问题。我们可以告诉flask-migrate / Alembic做同样的事情吗?

理想情况下,上面示例中的两个文件应该是

001_8fdf8259859b_.py
002_0f46602752b7_.py

1 个答案:

答案 0 :(得分:2)

如果您检查每个迁移文件,都会发现以下行:

revision = '09364330399c'
down_revision = None

down_revision代表之前的迁移。 如果您确实要更改命名约定,可以通过在file_template

中添加alembic.ini字段来实现。

以下文档:

  

file_template-这是用于生成新的迁移文件的命名方案。当前值是默认值,因此已注释掉。可用的令牌包括:

   %%(rev)s - revision id

   %%(slug)s - a truncated string derived from the revision message

   %%(year)d, %%(month).2d, %%(day).2d, %%(hour).2d, %%(minute).2d, %%(second).2d - components of the create date, by default datetime.datetime.now() unless the timezone configuration option is also used.

对于您的特定示例,在alembic.ini

内添加以下行
file_template = %%(year)d%%(month).2d%%(day).2d_%%(hour).2d%%(minute).2d%%(second).2d_%%(rev)s_%%(slug)s

它将生成一个文件名,例如

20190527_122029_de2c595ec169_hello_world.py