Migrator.net удалить таблицу в Up (), что делать в Down ()? - PullRequest
1 голос
/ 04 января 2010

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

Ответы [ 2 ]

3 голосов
/ 22 августа 2011

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

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

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

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

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

...