2011-07-06 5 views
16

私は怠け者です。私の生産データベースには、開発中のテストで使用できるデータがあるので、簡単なの備品を生成する方法があるのだろうかと思っていました。私の開発データベースに基づいて器具を生成するには?

1.8.7でレール3を使用する

+1

現在のprodデータベースから標準的なテストフィクスチャを生成したいですか? –

+0

問題ではありませんが、私は毎日運用データベースをダンプして、私に電子メールで送って、私の開発データベース用に毎日のバックアップファイルを使用しています。 – fivetwentysix

答えて

-9

本当にGoogleがこれを行うことができます。 "レールはデータベースからフィクスチャを作成する"。最初のヒット:http://snippets.dzone.com/posts/show/2525しかし、あなたは私が脆弱なテストと思われるものを生成するでしょう。治具の交換を検討してください。 Fixjour,Factory Girl、またはMachinistのようになります。彼らは、あなたのコードでどのような辺のケースが投げられているのかを考えるのに役立ちます。ちょっとした考え。

+17

あなたのリンクや代替の備品を使用することが有用であることに注意してくださいが、 "Googleそれ"は有用ではありません。特に、Googleが今ここで私たちをリードしているからです。それを読む人に役立つ回答を提供してください。リンクは死んでしまいますが、答えに書かれたテキストはありません。ありがとうございました。 – Nate

+3

それに同意します。 OPは「私は怠け者だ」と始まり、これが私の最初の反応でした。私はもっ​​と慎重にすべきだった。 –

+2

この問題に遭遇した人として、私は* Googleにそれを行いました.SSOのGoogleのジュースが非常に高いので、これが私が見つけた最初の答えです。私はちょうどこのメタを読んでいる:http://meta.stackoverflow.com/questions/251758/why-is-stack-overflow-so-negative-of-late?cb=1そして本当に今それを感じている。 – makdad

19

質問は古いですが、それはまだ、関連すると思われるよう:このconfig/initializers内のファイルに

class ActiveRecord::Base 
    def dump_fixture 
    fixture_file = "#{Rails.root}/test/fixtures/#{self.class.table_name}.yml" 
    File.open(fixture_file, "a+") do |f| 
     f.puts({ "#{self.class.table_name.singularize}_#{id}" => attributes }. 
     to_yaml.sub!(/---\s?/, "\n")) 
    end 
    end 
end 

プレイス - 今、あなたはダンプできます:はい、ご使用の開発データベースから備品を作成する簡単な方法がありますあなたのRailsコンソールのActiveRecordオブジェクトは、それぞれのフィクスチャファイルの末尾に自動的に追加されます:

User.first.dump_fixturetest/fixtures/users.ymlにフィクスチャデータを追加します。

+0

'File.open(fixture_file、" a + ")'ファイルが存在しない場合は作成されます。 – Foton

+0

偉大な答え。上記のスニペットを使用して、すべてのレコードをフィクスチャとしてダンプするのであれば、 'User.all.map(&:dump_fixture)' – Matt

関連する問題