У меня есть проект базы данных SSDT в Visual Studio 2013. Он используется в качестве «листа ответов» при публикации обновлений базы данных в базе данных в других средах. Недавно я наткнулся на статью Джейми Томпсона в блоге о DacPac, где он пишет отличное резюме о том, что такое DacPac и как их использовать.
Теперь, скажем, у меня есть следующий сценарий:
- Проект SSDT в VS2013 версии 1.0.33.
- База данных в моей среде разработки версии 1.0.32.
- База данных в моей среде S-test версии 1.0.31.
По словам Джейми, публикация изменений баз данных с использованием DacPacs является идемпотентной, т. е. я могу опубликовать DacPac из проекта SSDT в списке 1 в базу данных в списке 3, и он получит все изменения, внесенные в базу данных как в версии 1.0.32, так и в версии 1.0.32. 1.033, так как DacPac содержит информацию о полной схеме БД (которая также должна включать изменения, сделанные в версии 1.0.32).
Это правильное понимание того, как работает публикация DacPac?