我最近对在PostgreSQL数据库上创建数据库表的models.py
文件进行了一些更改。
在本地开发系统中,一切都很有效。我将更改推送到GitHub,然后部署到我的测试AWS EC2 Linux系统。部署没有错误,所有文件都反映了我在开发系统上的内容。
唯一的问题是部署后未创建数据库表。如果我在测试AWS EC2上运行makemigrations
,它只是声明没有更改。创建反映我的models.py
的新数据库表的最佳方法是什么?
作为参考,这是我的部署脚本:
#!/bin/bash
source venv/bin/activate
git pull
pip install -r requirements.txt
./manage.py migrate
./manage.py collectstatic --no-input
initctl restart gunicorn
答案 0 :(得分:0)
由于旧的迁移文件无法正确应用而导致出现问题。运行<elements>
<element attribute1="value" attribute2="value"/>
<element attribute1="value" attribute2="value"/>
</elements>
是一个命令,显示应用了哪些迁移文件,哪些不是。对我来说,有8个迁移文件不适用。为了解决这个问题,我从数据库中的django-migrations表中删除了最后一次已知的迁移。然后我重新运行python manage.py showmigrations
,这将所有迁移应用到当前创建数据库条目的当前迁移。然后,我从我的GitHub存储库部署,以确保应用了损坏的迁移文件后的所有更改。这解决了我的问题,希望能帮助下一个有这类迁移问题的人。