2010-12-18 10 views

Antwort

2

Nein, nicht wirklich. Aber Sie können Code schreiben, der das tun könnte!

Strategie wäre, Ihre Datenbankeinträge in YAML auszugeben und diese YAML in seed.rb zu lesen. Eine andere Strategie ist natürlich, Code zu schreiben, der seed.rb generiert.

Scheint wie ein sehr typisches Bedürfnis. Ich bin noch nicht auf ein Juwel oder etwas gestoßen, das das schon tut.

3

Versuchen Sie mit seed-fu. Sie können SeedFu::Writer eine CSV-Datei angeben, die zum Generieren einer Datei im Format "samen.rb" verwendet wird. Natürlich müssten Sie mit einem Datenbank-Tool die Datenbanktabelle in eine CSV-Datei exportieren.

1

Ein schöner Code-Schnipsel, die ich gefunden habe, um diese Adresse ist eine Harke Aufgabe von 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 

Nachdem Sie Ihre exportierten Befestigungen in YAML bekommen können Sie nur einige regelmäßige laufen Ausdrücke, um sie für eine Seeds-Datei korrekt zu formatieren. Dies wäre wahrscheinlich ein guter Codeschnipsel, der als Grundlage für das Erstellen einer Rake-Task zum Exportieren einer Seed-Datei verwendet werden kann.

4

Ja.

Hier ist ein Juwel - - das genau das tut.

+0

Das sieht vielversprechend aus. Danke fürs teilen. – Abram

0

öffnen Rails-Konsole und verwenden diesen Trick:

puts name_of_your_.attributes.to_yaml 
Verwandte Themen