2

開発のさまざまな段階 (ライブ、テスト、開発) にあるアプリがあります。

テスト担当者がテスト データベースの問題を報告すると、テスト データベースにのみ存在するユーザー ID を指定するため、開発で問題を再現することが非常に困難になります (場合によっては)。

テーブル内の特定の ID に関連付けられたすべてのもの (外部キーによってリンクされた他のテーブルからのオブジェクトを含む) を引き出し、そのデータを開発データベースにインポートできるようにしたいと考えています。

どうすればそれができますか?

  • リンクされたすべての関係をディープ コピーできますか?
  • そのオブジェクトをエクスポートしてからインポートできますか
  • その移行スクリプトから 2 つのデータベースにアクセスできますか?
4

1 に答える 1

0

あなたが達成しようとしていることは、些細なことではありません。

ユーザーに関するすべての情報を引き出したい場合は、そのユーザーのすべての情報と関連情報にアクセスするスクリプトを作成するか、DB テーブルから直接情報を抽出する必要があります。

最初の選択肢を好む場合は、関係を注意深く調べて、ActiveRecord を使用してすべての関係を抽出する必要があります。

たとえば User モデルと @user インスタンスがある場合は、「attributes」メソッドを使用すると便利な場合があります。

user_attributes = @user.attributes

彼の属性をハッシュで抽出すると、後で次のことができます。

User.create(user_attributes)

同じ属性を持つユーザーを作成しますが、protected_attributes または関係に問題が発生します。

あなたが従おうとしている戦略は、問題を解決するのに最適ではないかもしれません。

ssh などでテスト環境にアクセスできませんか? このようにして、データベースをチェックし、問題をそのまま見ることができます。

于 2012-07-17T08:57:29.193 に答える