我试图将Alembic迁移作为python包分发的一部分。由于将安装此发行版,因此Alembic脚本编目目录(包含迁移)将最终复制到python包文件夹。在这种情况下,我如何告诉Alembic在哪里找到这个目录?
在Alembic文档中,它说migration
目录可以在config.ini
文件中指定为包引用:
- script_location - 这是Alembic环境的位置。它通常是指定的 作为文件系统位置,相对或绝对。如果位置是相对路径,那就是 解释为相对于当前目录。
(剪断)
为了支持将自己打包成.egg文件的应用程序, 在这种情况下,也可以将值指定为包资源 resource_filename()用于查找文件(0.2.2中的新增内容)。任何 包含冒号的非绝对URI在此解释为a 资源名称,而不是直接的文件名。
文档没有提供进一步的信息或示例。
有没有人成功实现过这个?您如何将migration
scripting_folder变成“包资源”?那么你怎么告诉alembic在哪里找到它?
答案 0 :(得分:4)
例如:
script_location = mypackage:somewhere/inside/it
这要求您在分发中包含迁移:您应该查看MANIFEST.in文件等。