【发布时间】:2018-01-28 10:17:56
【问题描述】:
我一直在编写一个新的 Django 包,它可以通过 pip 安装。我被困了一段时间,因为我不确定如何为我的特定包进行迁移,以便让安装的正常工作流程成为:
- pip 安装我的包
- 将我的包裹添加到您的“INSTALLED_APPS”中
- 运行
python manage.py migrate
目前,我的包裹是这样的:
package_root/
dist/
actual_package/
__init__.py
models.py
setup.py
我面临的问题是,当我打包应用程序并使用pip install dist/... 安装它,然后将其添加到我的示例应用程序“INSTALLED_APPS”中时,运行python manage.py migrate 不会为actual_package/models.py 中的模型创建任何表因此我(从用户的角度)需要先运行python manage.py makemigrations actual_package,这并不理想。
关于如何在用户安装之前对迁移进行排序的任何想法都非常好。
【问题讨论】:
-
实际包中是否包含迁移?解压缩您要上传到 PyPI 的文件并检查文件是否存在。
-
不,它们不存在,因为我没有生成任何东西。我的问题更多是如何设置一个好的工作流程来实际创建它们,以便我可以打包它们。由于我的包中没有 settings.py 或 manage.py
-
哦,我明白了。通常的做法是包含测试项目(未打包)。这是我目前正在进行的项目:github.com/genialis/resolwe。要创建迁移,我们运行
./tests/manage.py makemigrations即可。 -
好的,我明白了,谢谢。我想你给了我一些可以工作的东西。
标签: python django django-migrations