2011-07-06 8 views
1

ほとんどのRailsのデータベース展開の議論では、データベースの2つの面があると仮定しています。つまり、移行によってコード内で処理されるスキーマと、すべてユーザー生成であり、テストから本番に移行する必要のないデータです。間にあるものはどうですか?CMS /静的コンテンツをステージングから運用データベースにプッシュするには?

たとえば、質問、選択肢、分岐などの複雑なアンケートを含む静的な表が多数あります。これらの調査をウェブアプリケーションから編集できるようにしたいと考えていますが、ステージングサーバーをプロダクションにプッシュする前にステージングサーバーの変更をテストできるようにしたいと考えています。

これは、すべてのモデルが1つのデータベースに存在することを望んでおり、同じモデル(異なる内容のもの)が2つのデータベースに存在することを望んでいないRailsでこれを処理する良い方法はありますか?オンラインで良いディスカッションや、このタイプの機能を抽象化した宝石はありますか?

独自のマルチ環境バージョン管理とデプロイメントを備えた大規模で複雑なCMSシステムを使用していますので、変更をテストシステムに展開して(テストデータベースと本番データベースを危険なくリンクすることなく)徹底的に実行し、ワンクリックで本番環境に展開します。私は小さいスケールでそのようなものを探していると思います。

答えて

1

は、私は生産にステージング環境から目的のレコードをプルするActiveResourceを使用します。あるいは、名前空間のActiveRecordモデルを作成してステージングデータベースに直接接続することもできます。どちらの方法でも、実装はほぼ同じですが、ActiveResourceでは展開の詳細を柔軟に変更でき、ActiveRecordメソッドではセットアップコードが少なくて済みます。

実際の実装コードは、ステージングからインポートされていないレコードのリストをプルする必要があります(複製を簡単に防止するために、プロダクションレコードをソースステージングレコードにマップしてデータをコピーすることをお勧めします)。

0

Railsについてはわかりませんが、私はDrupal CMSの開発、ステージング、およびライブ(プロダクション)サイトのデータベースを同期するのに便利なPythonスクリプト、片頭痛を使用しています。詳細情報については、これを参照してください。

  1. Presentation
  2. Get Migraine script here
+0

面白いことに、片頭痛はRailsの移行後にモデル化されました!だから我々はすでにその機能を持っている。しかし、ありがとう。 –

関連する問題