run remove rails migrations generate data column ruby-on-rails activerecord ruby-on-rails-3 rake

ruby-on-rails - remove - rollback migration rails



Crear archivo inicial a partir de datos que ya están en la base de datos (4)

He usado YamlDb para volcar datos desde mi base de datos de desarrollo y luego lo cargo en otro servidor. Vacia los datos en un archivo Yaml, que se usará cada vez que quiera usar db: load para subirlo a cualquier otro servidor db.

https://github.com/ludicast/yaml_db

Estoy usando Rails 3.0.3 y tengo datos para mi tabla de "categorías" que ya están en la base de datos, pero quiero crear un archivo inicial a partir de él. ¿Hay alguna tarea de rake que genere el formato seeds.rb para mí desde esta tabla?


No estoy seguro acerca de las tareas de rake existentes, pero puede intentar ejecutar algo como esto en la consola de rails y pegar los resultados en su archivo seeds.rb

( advertencia: sucio y no probado)

c = Category.all c.each do |cat| puts "Category.create(:name => ''#{cat.name}'')" end

Ajústelo para cualquier campo adicional que pueda tener.

Espero que esto ayude.


Pregunta anterior, tengo una nueva basada en la respuesta de @ Brian.

Si quieres mantener toda la fila como está:

seedfile = File.open(''db/seeds.rb'', ''a'') c = Category.all c.each do |cat| seedfile.write "Category.create(#{cat.attributes})/n" end seedfile.close

Si solo desea escribir algunos atributos, cambie la línea de escritura a la siguiente:

seedfile.write "Category.create(#{cat.attributes.slice(''attr1'', ''attr2'', ...})/n"

O bien, si desea todos los atributos excepto algunos, por ejemplo, marcas de tiempo:

seedfile.write "Category.create(#{cat.attributes.except(''created_at'', ''updated_at'')})/n"