Tengo una tarea de rastreo que rellena algunos datos iniciales en mi aplicación de rieles. Por ejemplo, países, estados, operadores de telefonía móvil, etc.¿Cuál es la mejor forma de crear una base de datos en Rails?
La forma en que la configuro ahora, es que tengo un montón de declaraciones de creación en archivos en/db/fixtures y una tarea de rake que las procesa. Por ejemplo, un modelo que tengo es temas. Tengo un archivo en theme.rb/db/accesorios que tiene este aspecto:
Theme.delete_all
Theme.create(:id => 1, :name=>'Lite', :background_color=>'0xC7FFD5', :title_text_color=>'0x222222',
:component_theme_color=>'0x001277', :carrier_select_color=>'0x7683FF', :label_text_color=>'0x000000',
:join_upper_gradient=>'0x6FAEFF', :join_lower_gradient=>'0x000000', :join_text_color=>'0xFFFFFF',
:cancel_link_color=>'0x001277', :border_color=>'0x888888', :carrier_text_color=>'0x000000', :public => true)
Theme.create(:id => 2, :name=>'Metallic', :background_color=>'0x000000', :title_text_color=>'0x7299FF',
:component_theme_color=>'0xDBF2FF', :carrier_select_color=>'0x000000', :label_text_color=>'0xDBF2FF',
:join_upper_gradient=>'0x2B25FF', :join_lower_gradient=>'0xBEFFAC', :join_text_color=>'0x000000',
:cancel_link_color=>'0xFF7C12', :border_color=>'0x000000', :carrier_text_color=>'0x000000', :public => true)
Theme.create(:id => 3, :name=>'Blues', :background_color=>'0x0060EC', :title_text_color=>'0x000374',
:component_theme_color=>'0x000374', :carrier_select_color=>'0x4357FF', :label_text_color=>'0x000000',
:join_upper_gradient=>'0x4357FF', :join_lower_gradient=>'0xffffff', :join_text_color=>'0x000000',
:cancel_link_color=>'0xffffff', :border_color=>'0x666666', :carrier_text_color=>'0x000000', :public => true)
puts "Success: Theme data loaded"
La idea aquí es que quiero instalar algunos temas de valores para que los usuarios comienzan con. Tengo un problema con este método
Establecer la ID no funciona. Esto significa que si decido agregar un tema, llamémoslo 'Rojo', entonces simplemente me gustaría agregar la declaración del tema a este archivo de dispositivo y llamar a la tarea de rake para resembrar la base de datos. Si lo hago, debido a que los temas pertenecen a otros objetos y su identificación cambia con esta reinicialización, todos los enlaces se rompen.
Mi pregunta es, en primer lugar, ¿es esta una buena manera de gestionar la creación de una base de datos? En una publicación anterior, esto me fue recomendado.
Si es así, ¿cómo puedo codificar los ID, y hay algún inconveniente para eso?
Si no, ¿cuál es la mejor manera de sembrar la base de datos?
Realmente apreciaré las respuestas largas y pensadas que incorporan las mejores prácticas.
¿Podría aceptar la respuesta más actualizada? –
Acabo de hacer. Gracias por el recordatorio – Tony