Развертывание проекта базы данных VS2010, потерпеть неудачу, может произойти потеря данных или нет? - PullRequest
6 голосов
/ 15 апреля 2011

У меня есть проект базы данных для веб-приложения, и в настоящее время он настроен на сбой, если во время развертывания может произойти потеря данных. Мне так безопаснее. Однако я столкнулся с проблемой. На самом деле мне нужно развернуть изменения в некоторых вещах, где я в порядке с возможной потерей данных, то есть укоротить длину столбцов, где ничего не будет фактически удалено, но система думает, что это будет.

У меня 2 вопроса.

Первое: кроме включения или отключения перехвата «все ходят или не ходят», есть ли способ более детально контролировать этот процесс, т. Е. Указывать столбцы, которые можно удалить или сократить? Есть ли способ получить более детальный контроль над этим процессом?

Во-вторых, как вы, ребята, справляетесь с этими ситуациями? Первоначально я надеялся, что добавления сценария перед развертыванием для удаления столбцов будет достаточно, однако, похоже, он также ловит отбрасывания и т. Д. В этих файлах.

Ответы [ 3 ]

2 голосов
/ 22 апреля 2011
  1. Нет, к сожалению, нет способа контролировать его более детально.
  2. Я отключаю его, когда знаю, что разверну что-то, что приведет к потере данных, но это то, что я хочу. Затем я снова включаю его после. Кроме того, я всегда проверял бы сценарий изменений, который появляется при развертывании в рабочей среде.
0 голосов
/ 27 февраля 2013

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

Для получения дополнительной информации см. Сообщения Barclay Hills по теме:

0 голосов
/ 10 мая 2011

Просто обновить столбец в сценарии перед развертыванием до длины усечения?

Например: усечь мое столбец до 20:

UPDATE mycol = LEFT(mycol, 20)
FROM mytable
WHERE mycol != LEFT(mycol, 20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...