DjangoとElasticbeanstalkを使用して小さなWebアプリケーションを開発しています。 2つの環境(ステージングとプロダクション)でEBアプリケーションを作成し、RDSインスタンスを作成してEB環境に割り当てました。DjangoとElasticbeanstalk/MultipleデータベースのためのDjango移行プロセス
私はローカルデータベースを使用していますが、AWSへのデプロイメントにかなりの時間がかかります。
ただし、移行に問題があります。私は数分おきにローカルで開発とテストを行うため、ローカルと異なる2つの環境で異なる移行をする傾向があります。
一度、特定の環境にアプリケーションの現在のバージョンをデプロイすると、テーブルがすでに存在するか存在しないため、 "manage.py migrate"はほとんどの場合失敗します。テーブル)。
私は、開発、ステージング、およびプロダクションに複数の環境を使用する場合、同じ構造を常に反映していないいくつかの共通のデータベースインスタンスを使用すると、移行プロセスをどのように処理するのだろうと思いましたか?
コードリポジトリとebデプロイメントからマイグレーションファイルを除外し、すべてのデプロイメント後にマックマイグレーション&を実行する必要がありますか? .ebextensionsを使用して自動的に移行を実行して、インスタンスの1つを通して手動ですべての移行を適用する必要がありますか?
異なる環境で異なるデータベースインスタンスで同じDjangoアプリケーションを使用する場合の推奨方法は何ですか?
しかし、それはまさに私の言いたいことです。開発とテストの目的のために、ある時点でテーブルを削除する(または何か他のことをする)可能性があります。また、MigrationsフォルダをElastic Beanstalk環境に配備すると、エラーを避けるために、他のDBにも同じトランザクションを適用する必要があります。移行ファイルを無視して、すべてのシステムが独自の移行を維持できるようにするのは苦労ですか? – wuser92
テーブルを削除することはできますが、データベースに対して直接操作は実行しません。 django ORMを使って行います。テーブルを削除する場合は、そのモデルを削除して移行を行う必要があります。その後、各サーバー上で個別に移行すると、問題に直面することはありません。 – sprksh
私は弾力のある豆を使用していません。しかし、はい、これは正常なことです。移行ファイルは無視され、各サーバー(dev、production、testing)ごとに別々の移行が行われます。通常、gitを使用する場合は、/ gitignoreにmigrations /を入れます。移行ファイルは各サーバー上で個別に生成されます。 – sprksh