2010-12-18 25 views

Odpowiedz

2

Nie, naprawdę nie. Ale możesz napisać kod, który mógłby to zrobić!

Strategia polegałaby na zrzucaniu wpisów do bazy danych w YAML i przeczytaniu YAML w pliku seed.rb. Inną strategią jest oczywiście napisanie kodu, który generuje seed.rb.

Wydaje się, że to bardzo typowa potrzeba. Nie natknąłem się na klejnot lub coś, co już to robi.

3

Spróbuj użyć seed-fu. Możesz podać SeedFu::Writer plik CSV, który zostanie użyty do wygenerowania pliku w seeds.rb "format". Oczywiście przy użyciu jakiegoś narzędzia bazy danych trzeba wyeksportować tabelę bazy danych do pliku CSV.

1

Miła fragment kodu, który znalazłem w celu rozwiązania tego problemu jest zadaniem natarcia z Jesse Newland:

http://snippets.dzone.com/posts/show/3393

namespace :db do 
    namespace :fixtures do 
    desc 'Create YAML test fixtures from data in an existing database. Defaults to development database. Set RAILS_ENV to override.' 
    task :dump => :environment do 
     sql = "SELECT * FROM %s" 
     skip_tables = ["schema_info"] 
     ActiveRecord::Base.establish_connection(:development) 
     (ActiveRecord::Base.connection.tables - skip_tables).each do |table_name| 
     i = "000" 
     File.open("test/fixtures/#{table_name}.yml", 'w') do |file| 
      data = ActiveRecord::Base.connection.select_all(sql % table_name) 
      file.write data.inject({}) { |hash, record| 
      hash["#{table_name}_#{i.succ!}"] = record 
      hash 
      }.to_yaml 
     end 
     end 
    end 
    end 
end 

Po otrzymaniu wyeksportowane opraw w YAML można po prostu uruchomić jakiś regularny wyrażenia, aby poprawnie je sformatować dla pliku źródłowego. Prawdopodobnie byłby to dobry fragment kodu, który posłużyłby jako podstawa do zbudowania zadania rake do eksportu pliku źródłowego.

0

konsola bariery i wykorzystać ten trik:

puts name_of_your_.attributes.to_yaml 
Powiązane problemy