Estoy usando Rails 3.0.3 y tengo datos para mi tabla de "categorías" ya en la base de datos, pero quiero crear un archivo semilla desde él. ¿Hay alguna tarea de rake que genere el formato seeds.rb para mí desde esta tabla?Crear archivo inicial a partir de datos que ya están en la base de datos
Respuesta
Hay una gema llamada seed_dump
, lo que hará exactamente lo que quiere:
No está seguro acerca de cualquier rastrillo tareas existentes, pero puede intentar ejecutar algo como esto en la consola de rieles & pegar los resultados en el archivo de seeds.rb
(advertencia: sucia & no probado)
c = Category.all
c.each do |cat|
puts "Category.create(:name => '#{cat.name}')"
end
Ajuste para cualquier campo adicional que pueda tener.
Espero que esto ayude.
no puedo imaginar cómo olvidar estos hacks. muchas gracias –
He utilizado YamlDb para volcar datos de mi archivo 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.
vieja pregunta, tengo una nueva basada en la respuesta de @ Brian.
Si desea mantener toda la fila como es:
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 sólo desea escribir algunos atributos, cambiar la línea de escritura a lo siguiente:
seedfile.write "Category.create(#{cat.attributes.slice('attr1', 'attr2', ...})\n"
O, si desear todos los atributos, excepto algunos, por ejemplo, marcas de tiempo:
seedfile.write "Category.create(#{cat.attributes.except('created_at', 'updated_at')})\n"
- 1. Crear dinámicamente pruebas PHPUnit a partir del archivo de datos
- 2. frasco creado a partir de la base de datos
- 3. Cómo crear mediante programación un Java ResultSet a partir de datos personalizados sin base de datos
- 4. ¿Crear imagen a partir de datos RGB?
- 5. Adjuntar datos a un campo de base de datos MySQL que ya tiene datos
- 6. ¿Crear una base de datos desde otra base de datos?
- 7. Campo de UUID agregado después de los datos que ya están en la base de datos. ¿Hay alguna forma de llenar el campo UUID para los datos existentes?
- 8. ¿Cómo puedo crear tablas de base de datos a partir de archivos XSD?
- 9. ¿Cómo entender una base de datos que ya está desarrollada?
- 10. ¿Hay alguna forma de utilizar datos que ya están en la memoria para realizar pruebas unitarias?
- 11. búsqueda inicial de datos backbone.js
- 12. Copia de datos relacionales de la base de datos a la base de datos
- 13. Genere un esquema YAML o modelos para Doctrine a partir de la base de datos MySQL
- 14. Dynamic ical creado a partir de una base de datos que no funciona
- 15. CREAR BASE DE DATOS en la ruta predeterminada
- 16. LINQ to SQL - La base de datos generó una clave que ya está en uso
- 17. Crear objeto lm a partir de datos/coeficientes
- 18. Restaurando la base de datos Postgresql
- 19. Generar archivo XML a partir de los datos del modelo
- 20. crear base de datos segura en mongodb
- 21. Crear base de datos SQLite en android
- 22. Crear base de datos innodb en mysql
- 23. Android: excepción de estado ilegal de base de datos SqLite (base de datos ya cerrada)
- 24. Crear base de datos MySQL con el archivo .SQL
- 25. Cómo construir una base de datos a partir de un esquema XSD e importar datos XML
- 26. Conexión a base de datos a partir de una extensión de Chrome?
- 27. Apache Derby - Comprobar la base de datos ya creada?
- 28. HSQLDB - que es el archivo de base de datos principal
- 29. ¿Cómo copiar la base de datos en uso a otra base de datos en django?
- 30. C#: Base de datos interna de archivo en la aplicación
Esa es una muy buena parte, gracias! –
Encontré el nuevo hogar de Github en caso de que alguien lo esté buscando - https://github.com/zenprogrammer/seed_dump – rcd
La página de RubyGems enlaces a https://github.com/rroblak/seed_dump actualmente (8 de febrero de 2014)) EDITAR: Supongo que el enlace zenprogrammer anterior también redirige al nuevo. – streetlogics