herokuで実行しているdjangoアプリがあります。South移行に依存するコードが公開される前に、South移行を実行したいと思います。現在推奨されている方法を簡単に確認した後、2つの推奨される移行手順を見つけました。
推奨事項1
- すべての変更をコミットしてプッシュする
heroku run python manage.py migrate <APP_NAME>
アプリごとに実行
これは、ステップ1と2の間に期間があり、コードが最新のスキーマが配置されていると想定しているが、データベースがまだ更新されていないという問題があります。
推奨事項2
- すべてのデータベース変更をコミットしてプッシュします。
- 移行します。
- すべてのコード変更をプッシュします。
これにより前の問題は解決されますが、展開プロセスがさらに複雑になり、いつかこれを台無しにすることになります。
考えられる解決策?
推奨事項1の問題を回避し、各アプリを(依存関係の順序で)呼び出すカスタムpost_compileスクリプトを利用することで、デプロイメントを1つのステップに保つことができるようです。python $MANAGE_FILE migrate <APP_NAME>
私はこれがどこにも推奨されているのを見たことがないので、私の質問は2つあります。このアプローチの潜在的な問題を確認できますか?また、より良い方法がありますか?