Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 请按字母顺序进行迁移_Python_Flask_Flask Sqlalchemy_Alembic - Fatal编程技术网

Python 请按字母顺序进行迁移

Python 请按字母顺序进行迁移,python,flask,flask-sqlalchemy,alembic,Python,Flask,Flask Sqlalchemy,Alembic,使用flask-migrate和flask-script,我设置了我的项目,这样我只需要 python manage.py db migrate 在migrations文件夹中,我得到了如下文件 0f46602752b7_.py 8fdf8259859b_.py 无法保证第一次迁移会先于第二次迁移。Django通过在所有迁移之前添加一个自动递增的数字来解决这个问题。我们能告诉flask migrate/alembic也这样做吗 理想情况下,上面示例中的两个文件是 001_8fdf825985

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

python manage.py db migrate
在migrations文件夹中,我得到了如下文件

0f46602752b7_.py
8fdf8259859b_.py
无法保证第一次迁移会先于第二次迁移。Django通过在所有迁移之前添加一个自动递增的数字来解决这个问题。我们能告诉flask migrate/alembic也这样做吗

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

001_8fdf8259859b_.py
002_0f46602752b7_.py

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

revision = '09364330399c'
down_revision = None
down\u revision
代表前面的迁移。 如果您确实想更改命名约定,可以通过将
file\u template
字段添加到
alembic.ini

以下文件:

文件\模板-这是用于生成新迁移>文件的命名方案。当前值是默认值,因此被注释掉。可用代币包括:

   %%(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

文件模板=%%(年)d%%(月)。2d%%(日)。2d%%(小时)。2d%%(分钟)。2d%%(秒)。2d%%(修订版)s%%(段塞)s
它将生成一个文件名,如

20190527_122029_de2c595ec169_hello_world.py

Alembic是比Django更高级的迁移系统,它支持迁移分支和其他特殊情况。迁移脚本中有一行提到其父迁移,Alembic将扫描文件并解析层次结构。不需要重命名脚本。此外,下划线后面的部分应该包含迁移脚本的描述(例如,
0f46602752b7\u add\u user\u signin\u timestamp\u column.py
)。将其视为git提交编号。