Django AWS Deploy:部署后未创建新的数据库表

时间:2017-09-15 13:44:46

标签: git python-3.x amazon-ec2 django-migrations

我最近对在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

1 个答案:

答案 0 :(得分:0)

由于旧的迁移文件无法正确应用而导致出现问题。运行<elements> <element attribute1="value" attribute2="value"/> <element attribute1="value" attribute2="value"/> </elements> 是一个命令,显示应用了哪些迁移文件,哪些不是。对我来说,有8个迁移文件不适用。为了解决这个问题,我从数据库中的django-migrations表中删除了最后一次已知的迁移。然后我重新运行python manage.py showmigrations,这将所有迁移应用到当前创建数据库条目的当前迁移。然后,我从我的GitHub存储库部署,以确保应用了损坏的迁移文件后的所有更改。这解决了我的问题,希望能帮助下一个有这类迁移问题的人。