Migrator.net удалить таблицу в Up(), что делать в Down()?

В моем проекте реализован Migrator.net, и я удаляю таблицу из текущей схемы. мой Up() просто содержит Database.RemoveTable("FooTable"), Но теперь я немного растерялся относительно того, что я должен сделать для своего Down(), Нужно ли вручную анализировать все прошлые миграции на предмет изменений FooTable? Есть ли способ запустить все предыдущие миграции на FooTable в Down()?

2 ответа

Как насчет данных? Если было 50 000 строк, воссоздание пустой таблицы не возвращает к предыдущему состоянию.

Чтобы включить понижение базы данных с данными, вам необходимо:

  1. В Up() отсоедините таблицу от вашей модели данных (например, удалите FK) и переименуйте ее в что-то вроде DeleteMe_FooTable. Однако на самом деле не бросайте его.
  2. В Down() снова присоедините его к вашей модели данных - переименуйте его в исходное имя и восстановите FK.
  3. Через несколько дней / недель после развертывания, когда вы знаете, что на 100% гарантировано никогда не выполнять откат, администратор базы данных может вручную удалить таблицу.

Идея Down() является то, что это обратит эффекты вас Up() метод, так что технически, если вы бежали Up() а потом Down() сразу после того, как ваша схема базы данных вернется туда, где вы начали.

в вашем случае вам придется воссоздать таблицу в вашем Down()

Другие вопросы по тегам