Chr*_*ris 8 python sqlalchemy alembic
我正在审查同事写的一些代码,我注意到Alembic迁移文件中包含的迁移ID与文件名不匹配,例如文件18b6422c9d3f_some_migration.py包含
revision = 'c4218d61f026'
Run Code Online (Sandbox Code Playgroud)
我的同事不知道这是怎么发生的,所有其他修订文件的名称似乎都与他们的修订ID对齐.为了我自己的理智,我想重命名该文件以匹配其修订版ID.
很明显,Alembic修订版ID不包含任何真正的语义值,并且重命名文件似乎不会破坏任何内容.我仍然可以向前和向后运行迁移.但我对Alembic相当缺乏经验,我想确保这样做是安全的.
如果我git mv 18b6422c9d3f_some_migration.py c4218d61f026_some_migration.py可以期待任何长期问题?
Tho*_*tze 13
只要其中的revision变量设置为修订版ID,就可以重命名修订文件.
虽然修订版ID的前缀是新生成的修订文件的名称(其余部分来自描述迁移的注释),但是versions当集合修订标识及其之间的链接时,会考虑目录中的所有Python文件.
教程说:
每次Alembic对版本/目录运行操作时,它都会读取所有文件,并根据down_revision标识符如何链接在一起组成一个列表,其中down_revision表示第一个文件.
查看代码(版本0.8.5,alembic/script/base.py该Script._from_filename方法)显示脚本是从任何可以确定修订版ID的文件加载的,并且如果在脚本文件中设置了修订版ID,则使用它而不使用任何文件.无论如何都要考虑文件名.只有在没有明确设置修订版ID的情况下,才能从文件名的开头读取它.从版本0.2开始,这个逻辑似乎已经存在.
| 归档时间: |
|
| 查看次数: |
1913 次 |
| 最近记录: |