2012-03-24 11 views
6

heroku run rake db:migrateは、本番データベースの構造変更する正常に動作します:生産データベース(heroku)に開発データを取り込む方法は? (Railsの)

Migrating to CreateUsers (20120318090252) 
Migrating to AddIndexToUsersEmail (20120319191315) 
Migrating to AddPasswordDigestToUsers (20120319194632) 
Migrating to AddRememberTokenToUsers (20120323142854) 

しかしエントリを、私は私のローカル開発データベースに追加したデータは、Herokuの生産データベースにアップロードされていません。

これは正常ですか、それとも2つのデータベースを一致させる方法がありますか?

ありがとうございます。

+0

プロダクションに使用するローカルボックスのデータがあることを意味しますか?どれくらいのデータですか?ルックアップテーブルを埋める? – natedavisolds

答えて

6

移行では、構造(スキーマ)とデータの両方を処理できますが、いったんローリングすると、ほとんどの場合、本番データが正式な情報源となることが前提となります。リスト(「Mastercard、Visa、Amex」や管理者ユーザの設定など)のようなデータベースの設定に必要なデータがある場合、これは「seed .rb」ファイルに格納されます。データベース(スキーマとコンテンツ)のコピーを作成し、それを自動的に適用します。これは、通常、一度限りのものになります。本番データベースをQAまたは開発インスタンスにコピーする最初に、Railsはこれを行うことができるはずですが、典​​型的な本番データベースをコピーすることは、問題を巻き込むかもしれません。最も重要なのは、ユーザー情報を持つ本番データベースをコピーすることは、 ;コピー操作は、少なくともユーザーを匿名にする必要があります。第2の問題は、データベースサイズだけです。本番データベース実際のパフォーマンスの問題やその他のエッジのケースを再現するにはしばしば役に立ちますが、必要な場合もありますが、大規模なデータベースは複製に長時間を要し、使用している特定のデータベースとアクセス許可)

要するに、Railsは移行で適切なことを行います。構造的な更新は正常だと仮定して、データを入力する必要があると仮定します。お役に立てれば!

8

これは正常な動作です。 rake db:migrateはデータベース構造体を作成するだけです。 Herokuで既に開発中のデータを複製する場合は、heroku db:pushコマンドを使用するか、いくつかの固定レコードでデータベースを初期化する場合はseeds.rbを使用してください。

関連する問題