14

我正在尝试将 Alembic 迁移作为 python 包分发的一部分。由于将安装此发行版,因此 Alembic 脚本目录(包含迁移)最终将被复制到 python 包文件夹。在这种情况下,我如何告诉 Alembic 在哪里可以找到这个目录?

在 Alembic 文档中,它说migration可以在config.ini文件中指定目录作为包引用:

  • script_location - 这是 Alembic 环境的位置。它通常被指定为文件系统位置,相对的或绝对的。如果位置是相对路径,则将其解释为相对于当前目录。

(剪断)

为了支持将自身打包成 .egg 文件的应用程序,该值也可以指定为包资源,在这种情况下,resource_filename() 用于查找文件(0.2.2 中的新功能)。任何包含冒号的非绝对 URI 在这里都被解释为资源名称,而不是直接的文件名。

该文档没有提供更多信息或示例。

有没有人成功地实现了这一点?您究竟如何使您的migrationscripting_folder 成为“包资源”?那么你如何告诉 alembic 在哪里可以找到它呢?

4

1 回答 1

7

例如:

script_location = mypackage:somewhere/inside/it

这要求您在发行版中包含迁移:您应该查看您的 MANIFEST.in 文件等。

于 2015-04-09T19:31:07.943 回答