【发布时间】:2021-07-04 11:18:17
【问题描述】:
我正在使用 Django 3.2。我已将此行更改为 settings.py:
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
然后我运行了这些命令:
$ python manage.py makemigrations
$ python manage.py migrate
makemigrations 命令为我的应用程序创建新的迁移文件,不仅是我创建的应用程序,还包括我的依赖项。比如我用的是django-allauth,这个文件是在我的虚拟环境(virtualenv)中创建的:
.venv/lib/python3.8/site-packages/allauth/account/migrations/0003_auto_20210408_1526.py
django-allauth 未附带此文件。当我从 git 部署这个应用程序时,这个文件不包括在内。
我应该怎么做?如何切换DEFAULT_AUTO_FIELD 而无需为django-allauth 等依赖项创建新的迁移文件?
【问题讨论】:
-
在您的依赖项完成之前不要更新到 Django 3.2。个别应用程序可以设置AppConfig.default_auto_field 来指定默认自动字段以供其应用程序使用。我相信大多数流行的软件包都会将其添加到他们的应用程序配置中以防止此类情况发生。