Django AWS 部署:部署后未创建新数据库 Table

Django AWS Deploy: After deployment new Database Table was not created

我最近对在 PostgreSQL 数据库上创建数据库 table 的 models.py 文件做了一些更改。

在本地开发系统上一切正常。我将更改推送到 GitHub,然后部署到我的测试 AWS EC2 Linux 系统。部署没有错误,所有文件都反映了我在开发系统上的内容。

唯一的问题是部署后未创建数据库 table。如果我 运行 makemigrations 在测试 AWS EC2 上它只是声明没有变化。创建反映我的 models.py 的新数据库 table 的最佳方法是什么?

作为参考,这是我的部署脚本:

#!/bin/bash
source venv/bin/activate
git pull
pip install -r requirements.txt
./manage.py migrate
./manage.py collectstatic --no-input
initctl restart gunicorn

问题是由于旧的迁移文件没有正确应用而导致的。 运行 python manage.py showmigrations 是一个命令,显示哪些迁移文件已应用,哪些未应用。对我来说,有 8 个迁移文件不适用。为了解决这个问题,我从数据库中的 django-migrations table 中删除了最后一个已知的迁移。然后我重新 运行 python manage.py migrate 并将所有迁移应用到当前迁移,然后创建数据库条目。然后,我从我的 GitHub 存储库进行部署,以确保应用损坏的迁移文件后的所有更改。这解决了我的问题,希望能帮助下一个遇到此类迁移问题的人。