2010-12-18 23 views

Respuesta

2

No realmente. ¡Pero puedes escribir código que podría hacer eso!

La estrategia consistiría en volcar las entradas de su base de datos en YAML y leer ese YAML en seed.rb. Otra estrategia es, por supuesto, escribir código que genere seed.rb.

Parece una necesidad muy típica. No he encontrado una joya o algo que ya lo haga.

3

Intente utilizar seed-fu. Puede proporcionar SeedFu::Writer un archivo CSV que se utilizará para generar un archivo en el "formato" de seeds.rb. Por supuesto, con el uso de alguna herramienta de base de datos necesitarás exportar la tabla de la base de datos a un archivo CSV.

1

Un buen trozo de código que he encontrado para hacer frente a esto es una tarea rastrillo de 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 

Después de obtener sus accesorios exportados en YAML puede simplemente ejecutar algunos regulares expresiones para formatearlas correctamente para un archivo de semillas. Este probablemente sea un buen fragmento de código para usar como base para construir una tarea de rake para exportar un archivo semilla.

0

consola amuradas abiertas y utilizar este truco:

puts name_of_your_.attributes.to_yaml 
Cuestiones relacionadas