Having just taken the plunge and updated my old 2.0.2 site to 2.3.5 with
all the trimmings, I can offer a few thoughts.
The latest engines plugin does handle legacy migrations, but you need to
do some tweaking.
First off, you need to set Rails to use numeric migrations, or you’ll
have lots of headaches. Alternately, I suppose you can manually
timestamp your old migrations, but I haven’t tried that one yet… You
can set Rails to use numeric migrations by setting:
config.active_record.timestamped_migrations = false
Once that’s done, you need (possibly) to run: rake
This will make sure you have the proper DB tables, and put an entry into
that table for every old plugin migrations you have, in the format
At this point, you should be in good shape. Your db state matches your
code state, with one entry in schema_migrations for every plugin
migration and every main app migration.
The final trick is to use: rake db:migrate:all
Use this to upgrade your DB instead of the old ./script/generate
plugin_migration bit. The engines plugin will run all existing plugins,
find all new migrations, and apply them correctly.
Hope that helps!