We are likely to make a hybrid decision. We would like to abandon the idea of deploying packages, but, on the other hand, due to the nature of our applications (small enterprises as end users, no database administrators are required to update, so several “live” versions of the database coexist) we cannot refuse full control of the migration process, including the scheme and data. In our case, the pre- and post-deployment scenarios may not be sufficient (or at least not convenient enough) for a complete migration, for example, EF Migrations. Changes such as adding / removing source data, changing a one-to-many relationship to a many-many relationship, or even drastically changing a database schema (and therefore migrating data to this schema from any previous released schema) may be part of our day job at the release of our first version.
Thus, we are likely to use the EF transitions with the Up and Down system for each version. Basically, each "Up" will call dacpac with the last database snapshot (and each Down, its previous), each with its own deployment settings for this particular migration. EF migrations will handle the version control line, possibly also some of the complex parts of data migration.
We feel more confident in this hybrid form. We skipped automation and detection of schema changes in the Entity Framework Migration, as we skipped managing the lineup in Dacpacs mode.
Gustavo
source share