2016-06-30 6 views
3

Я читаю сообщение в блоге про Flyway, называемое Lessons Learned Using Flyway DB with Distributed Version Control. Одним из предложений автора является создание идемпотентных миграций.Должен ли я беспокоиться о создании идемпотентных миграций при использовании Flyway?

Цитирование из статьи:

В идеальном мире, каждая миграция будет выполняться только один раз против каждой базы данных .

В идеальном мире, то есть.

В действительности, будут случаи, когда вам нужно будет перезапустить миграции из одной базы данных. Часто это связано с ошибкой где-то вдоль линии, в результате чего вам нужно будет повторить шаги успешных миграций, прежде чем получить базу данных в рабочем состоянии. Когда это произойдет, невероятно полезно , чтобы миграция была написана идемпотентным образом.

Предполагая, что я использую базу данных, поддерживающую транзакции DDL, следует ли беспокоиться об идемпотентности при создании этих пакетов миграции?

ответ

5

В общем случае нет, особенно если у вас есть база данных, поддерживающая транзакции DDL.

Реализованные миграции предназначены для работы ровно один раз и могут, но не обязательно должны быть идемпотентными (практически никакой выгоды).

Повторяющиеся миграции, с другой стороны, должны быть идемпотентными, поскольку они будут запускаться снова и снова.

Flyway позволит вам очень легко воссоздать вашу базу данных с нуля, и это тот подход, который вы должны одобрить при экспериментировании.