ruby - tipos - Carriles 3: cómo generar modelos para tablas de bases de datos existentes
que es una base de datos relacional (6)
ActiveRecord no analiza una definición de esquema. Le pide al DBM las definiciones de tabla y calcula los campos sobre la marcha.
Tener el esquema es útil si va a modificar las tablas mediante migraciones. Schema Dumping and You
lo ayudarán a volcarlo para utilizarlo como referencia para crear migraciones.
ActiveRecord hace algunas suposiciones sobre la denominación de la tabla y espera que un campo de id
sea la clave principal con un número secuencial como tipo. Tener las migraciones lo ayudaría a refactorizar las tablas y / o nombres de campo y tipos, pero puede hacer esas mismas cosas a través de la línea de comandos de su DBM. En realidad, no es necesario seguir el estilo de ActiveRecord, pero esto ayuda a evitar errores extraños y permite que AR infiera cosas para facilitarle la vida.
He configurado mi database.yml para que apunte a mi base de datos mysql existente
¿cómo puedo generar modelos a partir de eso?
rails generate model existing_table_name
solo da un modelo emty ..
Podría intentar Magic Model Generator
Un modelo de Rails no muestra tus campos, pero aún puedes usarlos. Prueba lo siguiente. Suponiendo que tiene un modelo llamado ModelName y un campo llamado "nombre", inicie la consola de Rails y escriba:
ModelName.find_by_name(''foo'')
Dado un nombre que existe en la base de datos, debería ver los resultados.
Sin embargo, Rails no deduce relaciones, pero si su base de datos sigue las convenciones de Rails, se agregan fácilmente.
Actualizar
Me he dado cuenta de que esta particular falta de claridad ("magia") es una fuente de confusión para los novatos en Rails. Siempre puede buscar en schema.rb
para ver los modelos y todos los campos en un solo lugar. Además, si prefiere ver el esquema para cada modelo en el archivo de modelo, puede usar la joya annotate_models , que colocará el esquema db en un comentario en la parte superior del archivo modelo.
Puedes probar Rmre . Puede crear modelos para el esquema existente e intenta crear todas las relaciones basadas en información de claves externas.
Eche un vistazo a la gema rare_map. https://github.com/wnameless/rare_map Funciona tanto en el Carril 3 como en el 4.
Tu respuesta es:
$ rake db:schema:dump
Eso establecerá un nuevo db/schema.db
para crear un esquema de su base de datos.