[Ror-es] Generación automática a partir de esquema?

javier ramirez jramirez at aspgems.com
Thu Feb 1 14:45:57 GMT 2007


Si lo que tienes es una base de datos legacy puedes intentar lo siguiente

para generar la DB:

-configuras el database.yml para que conecte contra tu db

-ejecutas rake db:schema:dump. Esto te regenerará el fichero schema.rb

-el contenido de schema.rb lo copias en una migration y lo metes todo en 
el método up. Si quieres poder utilizar AR, tendrás que eliminar del 
código generado la parte de cada tabla donde dice :id=>false. Así 
tendrás las PK creadas como id automáticamente.

-te instalas el plugin para FKs de redhill. De esta forma conforme se 
creen las tablas se crearán los índices y las FKs.

-verificas que todas tus columnas que referencian a claves externas se 
llaman nombredetabla_id o en su defecto modificas la migration para 
añadirle la claúsula references en cada FK que lo requiera. Te aseguras 
también de que ninguna de tus columnas que no sean FK acabe en _id o en 
su defecto le metes un :references=>nil

-ejecutas rake db:migrate. Ya tienes tu flamante base de datos creada y 
tu migration preparada para recrearla en otros entornos. Ten en cuenta 
que el  campo clave para todas las tablas será ahora el campo "id" (si 
hiciste lo que te comentaba de eliminar lo de id=>false). Aquí hay que 
tener en cuenta un detalle... como estarás creando las tablas y las FKs, 
si las tablas no están en el orden adecuado te va a dar errores. Esto 
quiere decir que si tienes una tabla con una FK a otra, necesitas que la 
sentencia de creación de la tabla principal esté antes que la de la 
relacionada. Que yo sepa no hay forma de ejecutar las migrations con las 
constraints de la db desactivadas, básicamente porque las migrations por 
defecto no entienden de relaciones. Si alguien sabe cómo hacer esto, 
vendría bien que lo comentase ;)

-------

- Para generar los controladores y los modelos puedes usar directamente 
ruby script/generate

-------
- Si quieres tener vistas automáticamente, puedes tirar del generador de 
scaffolds o de ajax_scaffolds también mediante ruby script/generate

Ya tienes tu aplicación (básica) con sus altas, bajas, modificaciones y 
consultas preparada.

Saludos,

javier ramirez

p.s. lo mismo me he saltado algún paso porque esto te lo escribo de 
memoria, pero la idea es ésa

Luis Villegas wrote:
> Buenas, me gustaría saber si hay alguna herramienta en ruby para
> generar automáticamente desde un esquema de base de datos todos los
> modelos, controladores y vistas, añadiendo relaciones y demás.
>
> Gracias
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>   


-- 
--------
Estamos de estreno... si necesitas llevar el control de tus gastos visita http://www.gastosgem.com !!Es gratis!!



More information about the Ror-es mailing list