gpt4 book ai didi

python - alembic 是否关心其迁移文件的名称?

转载 作者:太空狗 更新时间:2023-10-29 20:44:55 26 4
gpt4 key购买 nike

我正在审查同事编写的一些代码,我注意到 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 以及它们之间的链接。

The tutorial说:

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.pyScript._from_filename 方法)表明脚本是从任何加载的可以确定修订 ID 的文件,如果在脚本文件中设置了修订 ID,则使用它时不会考虑文件名。仅当未明确设置修订 ID 时,才期望从文件名的开头读取它。这种逻辑似乎从 0.2 版开始就存在。

关于python - alembic 是否关心其迁移文件的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35672933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com