¿Es posible exportar datos de una base de datos, o ejecutar algo como Person.find (1) .to_seed y copiar el resultado de la consola en el archivo seeds.rb?¿Hay alguna forma de exportar un objeto ActiveRecord a seeds.rb?
Respuesta
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.
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.
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.
Sí.
Aquí hay una gema - https://github.com/rroblak/seed_dump - eso hace exactamente eso.
consola amuradas abiertas y utilizar este truco:
puts name_of_your_.attributes.to_yaml
- 1. ¿Hay alguna forma de exportar el esquema de PostgreSQL condensado?
- 2. ¿Hay alguna forma de invertir una consulta ActiveRecord :: Relation?
- 3. ¿Hay alguna forma de detectar si un objeto está bloqueado?
- 4. ¿Hay alguna manera de importar/exportar SourceGear Vault a Git
- 5. ¿Hay alguna forma de controlar los cambios en un objeto?
- 6. ¿Hay alguna forma de exportar un esquema XSD desde un DataContract?
- 7. ¿Hay alguna manera de exportar código a HTML en Eclipse?
- 8. ¿Hay alguna forma de serializar el objeto linq para Memcached?
- 9. ¿Hay alguna forma de tener múltiples archivos seeds.rb? ¿Algún tipo de 'control de versiones' para los datos de inicialización?
- 10. ¿Hay alguna forma de iterar a través de un objeto Dapper DynamicParameters?
- 11. C#: ¿Hay alguna forma de encontrar/actualizar fácilmente todas las referencias a un objeto?
- 12. ¿Hay alguna forma de multirreproducir un SqlDataReader?
- 13. ¿Hay alguna forma de acceder dinámicamente a un superglobal?
- 14. ¿Hay alguna forma de agregar columnas adicionales a un jstree?
- 15. ¿Hay alguna forma de importar un modelo 3D a Android?
- 16. ¿Hay alguna forma de "exportar" una base de datos SQL Server completa (esquema y datos) a texto?
- 17. ¿Hay alguna forma de exportar gráficos de tiempo desde la herramienta de desarrollador de Chrome?
- 18. ¿Hay alguna forma de exportar el diagrama de secuencia generado por Visual Studio?
- 19. ¿Hay alguna forma de eliminar un onTouchListener de un objeto de vista?
- 20. ¿Hay alguna forma de obtener un valor de propiedad de un objeto utilizando la clase PropertyPath?
- 21. ¿Hay alguna forma de sobrecargar + = en python?
- 22. ActiveRecord :: Relación, ¿hay alguna forma de eliminar el límite y el desplazamiento existentes?
- 23. En groovy, ¿hay alguna forma de comprobar si un objeto tiene un método determinado?
- 24. ¿Hay alguna forma de hacer un condicional before_save?
- 25. ¿Hay alguna forma de agregar un evento onclick a un control de servidor de etiquetas ASP.NET?
- 26. ¿Hay alguna manera de inicializar un objeto mediante un hash?
- 27. ¿Hay alguna forma de instanciar un NSManagedObject sin insertarlo?
- 28. ¿Hay alguna forma de burlarse parcialmente de un objeto usando EasyMock?
- 29. ¿Hay alguna forma de obtener el recuento actual de ref de un objeto en Python?
- 30. ¿Hay alguna forma de imprimir todos los métodos de un objeto en javascript?
Esto parece prometedor. Gracias por compartir. – Abram