mat*_*gan 7 python django django-migrations
我一直在编写一个可以通过 pip 安装的新 Django 包。我被困了一段时间,因为我不确定如何为我的特定包进行迁移,以便允许安装的正常工作流程是:
python manage.py migrate目前,我的包裹是这样的:
package_root/
dist/
actual_package/
__init__.py
models.py
setup.py
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,当我打包应用程序并使用安装它pip install dist/...然后将它添加到我的示例应用程序“INSTALLED_APPS”时,运行python manage.py migrate不会为模型创建任何表actual_package/models.py,因此我(从用户的角度)需要然后python manage.py makemigrations actual_package首先运行,这并不理想。
关于如何在用户安装之前对迁移进行排序的任何想法都非常好。
1 - 在包中包含初始迁移 - 例如, actual_package/migrations/0001_initial.py
2 - 包括python manage.py migrate actual_package作为安装过程的一部分 - 无论是新的还是更新的。
3 - 如果您发布对 actual_package 的更新,请包括任何新的迁移。
这应该适用于新安装和更新。如果迁移已经完成(例如,更新但不包括新的迁移),那么迁移命令不会受到影响。
一键警告:确保您的软件包安装检查了适当的 Django 版本。版本和代码之间发生了很多变化 - 以及迁移 - 一个版本可能不适用于另一个版本。
| 归档时间: |
|
| 查看次数: |
1419 次 |
| 最近记录: |