2016-04-27 14 views
5

最近Elastic BeanstalkにDjango Webアプリケーションをデプロイしました。私はDjangoの管理インターフェースにオンラインでアクセスし、オンラインサイトにコンテンツを追加できるように設定しました。ローカルとElastic Beanstalkデータベースを同期していますか?

現在、サイトはまだ開発中です - 私は切り刻んで変更や調整をします。残念ながら、ローカルバージョンからアプリケーションを配備するたびに、データベース(SQLite)が上書きされ、追加したコンテンツオンライン版では削除されます。

オンラインサイトからデータベース(およびデータベースのみ)を「プル」する方法はありますか?あるいは、データベースを無視するように 'deploy'コマンドに伝えることができますか?

ありがとうございました。

+0

どのデータベースエンジンですか? MySQL、PostgreSQL?いずれにせよ、どこのデータベースでも実行しているように、mysqldump/restoreのような処理を行うことができます。 –

+0

あなたのコメントをありがとう@Mark。これは単なるSQLiteのもので、Elastic Beanstalkでデータベースのオンライン版にアクセスする方法がわかりません。それを行う方法はありますか? –

+0

SQLiteの場合はまったく別の状況です(元の質問に含めると良い情報でした)。おそらく、アプリケーションをデプロイするたびにデータを展開する方法を決定する必要があります。 Beanstalkアプリケーションを単一のEC2インスタンスに制限していますか? –

答えて

0

SQLiteデータベースはプロジェクトディレクトリ内のファイルなので、アプリケーションをデプロイするたびにSQLiteデータベースが置換/削除されるため、デプロイ間のすべてのデータが失われてしまいます。

生産インスタンス(および特にこれらのPaaSサービス)では、外部データベース(PostgreSQL、MySQLなど)を使用する必要があります。

あなたの質問をより直接的に回答し、セットアップをそのままにしたいと思っているときは(少なくとも質問したときに)、私は展開の間にDBを保存できる2つの方法があります。 1つはsshでインスタンスにアクセスしてデータベースファイルを取得し、もう1つはdjangoのdumpdataコマンドを使用してデータをエクスポートしてからloaddataを使用してロードします。

+0

私は最終的に私のデータベースをMySQLサーバに移動し、これとコメントのアドバイスに基づいて、本番版と開発版の両方を指摘しました。ありがとう。 –

関連する問題