[Ror-es] Ampliando ActiveRecord::Migration y cómo escribir en schema.rb

Fernando Guillen fguillen.mail at gmail.com
Fri Jun 26 22:52:58 GMT 2009


Como siempre, la menor chorrada se convierte en un cúmulo de lios.

He abierto la clas ActiveRecord::Migration para añadirle un par de
métodos, en concreto:

add_foreign_key y remove_foreign_key

Esto ha sido lo fácil.. un par de executes ahí dentro y fuera.

( para más detalles http://gist.github.com/136799 )

El lío ha venido al intentar un rake db:test:clone que pensé que cogía
el estado de la db_development y la clonaba en db_test.. pero no es
así del todo.. al parecer lo que hace es coger el schema.rb y volcarlo
en db_test.

El problema es que mi monkey_patch no modifica el schema.rb para
añadirle las líneas de add_foreign_key si alguna migración las ha
invocado.

Osea que el schema.rb está perfecto excepto que no ha incluido mis
llamadas a add_foreign_key.

Entonces mi pregunta es:

¿En que punto del código de Rails se vuelcan órdenes en schema.rb para
poder hacer yo lo mismo?

He rebuscado y tenemos por un lado:

http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

Pero no veo donde accede a schema.rb

Tenemos también:

/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/schema_dumper.rb

Que no veo que tenga documentación online.

Al parecer este SchemaDumper es el que hace el trabajo duro pero no
veo donde se le invoca..

Bueno.. cualquier sugerencia es bienvenida

Saludos

f.

-- 
Fernando Guillén
Desarrollador Web Freelance
http://www.fernandoguillen.info


More information about the Ror-es mailing list