- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在审查同事编写的一些代码,我注意到 Alembic 迁移文件中包含的迁移 ID 与文件名不匹配,例如文件 18b6422c9d3f_some_migration.py
包含
revision = 'c4218d61f026'
我的同事不知道这是怎么发生的,所有其他修订文件的名称似乎都与它们的修订 ID 一致。为了我自己的理智,我想重命名文件以匹配其修订 ID。
很明显 Alembic revision IDs don't hold any real semantic value ,重命名文件似乎没有破坏任何东西。我仍然可以向前和向后运行迁移。但我对 Alembic 缺乏经验,我想确保这样做是安全的。
如果我 git mv 18b6422c9d3f_some_migration.py c4218d61f026_some_migration.py
我可以期待任何长期问题吗?
最佳答案
只要将其中的 revision
变量设置为修订 ID,就可以重命名修订文件。
虽然修订 ID 确实被添加到新生成的修订文件的名称之前(其余部分来自描述迁移的注释),但 versions
目录中的所有 Python 文件在以下情况下都会被考虑集合修订 ID 以及它们之间的链接。
Every time Alembic runs an operation against the versions/ directory, it reads all the files in, and composes a list based on how the down_revision identifiers link together, with the down_revision of None representing the first file.
查看代码(版本 0.8.5,alembic/script/base.py
,Script._from_filename
方法)表明脚本是从任何加载的可以确定修订 ID 的文件,如果在脚本文件中设置了修订 ID,则使用它时不会考虑文件名。仅当未明确设置修订 ID 时,才期望从文件名的开头读取它。这种逻辑似乎从 0.2 版开始就存在。
关于python - alembic 是否关心其迁移文件的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35672933/
我一直在学习如何创建自定义 ArrayAdapter 并熟悉重写 ArrayAdapter 的 getViewTypeCount 和 getItemViewType 方法。 为什么 Android V
我是一名优秀的程序员,十分优秀!