Я использую Evolve, который основан на Flyway для миграции баз данных. Когда я создаю базу данных с нуля, мои сценарии миграции создают схемы с именами rls
и «устаревшие», функцию и процедуру в rls
и таблицу в legacy
.
Когда я устанавливаю команду Evolve на erase
, чтобы стереть мою базу данных, чтобы я мог создать ее с нуля, она сначала дает сбой, потому что у меня есть пара политик безопасности, которые зависят от таблиц, которые, как я полагаю, Evolve не может обнаружить. Поэтому я сам удаляю их и снова создаю свой проект, чтобы запустить команду Erase, и в окне вывода отображается:
4> Executing Erase...
4> Evolve initialized.
4> Successfully erased schema dbo.
4> Erase schema(s) completed: 1 erased, 0 skipped.
Обратите внимание, что в нем упоминается только схема dbo, а остальные даже не указаны как пропущенные. Все объекты в моей базе данных в схеме dbo
исчезли, но объекты в rls
и legacy
все еще там, включая сами схемы. Поэтому, если я сейчас переключу свою команду обратно на migrate
, чтобы создать базу данных с нуля, она взорвется, когда попытается создать эти объекты, потому что они уже существуют. По документации должно быть
[удалить] все объекты базы данных (таблицы, представления...) схем, созданных Evolve или найденных пустыми.
Почему не стирает их?