alembic - 将包资源用作script_location的示例

时间:2014-09-11 23:21:33

标签: python sqlalchemy alembic

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

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

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

(剪断)

  

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

文档没有提供进一步的信息或示例。

有没有人成功实现过这个?您如何将migration scripting_folder变成“包资源”?那么你怎么告诉alembic在哪里找到它?

1 个答案:

答案 0 :(得分:4)

例如:

script_location = mypackage:somewhere/inside/it

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