2017-09-15 7 views
0

最近、PostgreSQLデータベースにデータベーステーブルを作成するmodels.pyファイルを少し変更しました。Django AWS Deploy:デプロイメント後新しいデータベーステーブルが作成されなかった

すべてはローカル開発システムでうまくいきます。変更を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

私はこの問題を抱えていました。使用していたdbユーザーにテーブルのアクセス許可を与える必要がありました。しかし、移行は機能していたように機能していました。 –

+0

@Chrisはい、テスト環境に表示されます。それらは順調であり、変化を含んでいる。 –

+0

@KevinHirst Linux AWS EC2を実行しており、データベースはRDS上にあります。まず、これまでにはうまくいきましたが、あなたの提案を試してみるとどうなりますか? –

答えて

0

問題が正しく適用されませんでした古い移行ファイルが原因で発生しました。実行中のpython manage.py showmigrationsは、どの移行ファイルが適用され、どの移行ファイルが適用されなかったかを示すコマンドです。私にとって、適用されなかった8つの移行ファイルがありました。これを修正するために、データベース内のdjango-migrationsテーブルから最後に知られた移行を削除しました。それから、python manage.py migrateを再実行し、すべての移行を現在のものに適用してから、データベースエントリを作成しました。その後、GitHubリポジトリから展開して、壊れた移行ファイルが適用されてからすべての変更が確実に行われるようにしました。これは私の問題を解決し、うまくいけば、これらのタイプの移行問題を持つ次の人を助けるでしょう。

関連する問題