Let's say I have two independent tables in the same database, tables Book and Cup. I create both with just primary keys (int), called Id. Then, to keep things tidy, I separate them into different projects and create FluentMigrations for both, which will reside in Book.Migrations.dll
and Cup.Migrations.dll
.
Now I realize that maybe my book should be able to have a name, and create a new migration to add a column called name. I set the version for this to be 201408111220 (so the timestamp as of writing this), and call it AddNameToBook. I apply this migration and the database is updated accordingly.
Then I realize that maybe a Cup should have a color. So I create a new migration, in the other project, with a version 201408111221 and call it AddColorToCup. Again I run the migration, and the database is updated.
As far as I know, so far everything should work just fine. What I am unsure about, is if I now add another migration to Book, say 201408111224, apply it, and then try to rollback. Since now the version 201408111221
from the other assembly exists in the VersionInfo -table, how will FluentMigrator handle this? Will it throw an error in my face, or just ignore the row since the current assembly doesn't know anything about it?
Also other comments regarding usage of FluentMigrator this way (with multiple assemblies for one database) are welcome.