Will Engines drop tables on downward migration?

Greetings fellow Railites,

Last night I converted an existing Rails app to be Engines based. The
transition was very easy, which was great, but I was left scratching my
head with Engines’ migration handling.

After moving my db/migration folder to plugin/db/migration I did as
suggested by the Engines README and ran script/generate plugin_migration. This created the expected migration with an upward
migrate(8) and a downward migrate(0). That is my entire existing
schema–I have 8 migrations.

I wanted to test the migration handling of Engines so I issued rake db:migrate VERSION=0 hoping to drop all my tables and then recreate
them from scratch with an upward rake db:migrate. However, after
issuing the downward migration I saw that, despite all 8 migrations
having a drop table in the down method, Engines didn’t drop any of my
tables. It did, however, set the version to 0 in schema_info and
plugin_schema_info.

Am I incorrect in thinking that Engines will just call the down method
in each migration of a plugin? Why were my tables not dropped?

Thanks in advance for all replies.

Turns out that plugin_schema_info should be 8 and schema_info should be

  1. After those values were correct the engines migrations worked as
    expected (tables dropped). I found out by manually deleting all the
    tables, setting plugin_schema_info and schema_info to 0, and running a
    fresh db:migrate.