2014-10-05 3 views

ответ

2

Инкрементная публикация базы данных - это функция развертывания, в которой исходный код схемы (новой версии) сравнивается с текущей схемой базы данных (текущая версия) для создания сценария изменений для обновления текущей версии до новой версии.

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

Неудивительно, что механизм базы данных, кроме SQL Server, не поддерживается, поскольку поддержка других механизмов базы данных будет значительной работой. Все это на самом деле означает, что вам придется синхронизировать изменения базы данных самостоятельно. MySQL может предоставить инструменты для этого, но Visual Studio этого не делает.

+0

так свою единственную схему, ее обновления, а не содержание. Я полагаю, что он находит старую/новую версию БД из строки строки подключения в web.config? И есть ли способ остановить это? – Steve

+0

@Steve: он будет обновлять контент только в том случае, если в сценариях, контролируемых источником, содержится контент. Общим примером может быть использование операторов MERGE в сценариях после развертывания в исходном коде для поддержки таблиц поиска. Если все, что вы отслеживаете, это схема, все, что было бы обновлено, это схема. Что касается деталей того, где он получает строку соединения и т. Д., Это зависит от того, как вы отслеживаете изменения. Проект базы данных? EF-кодовые модели? Что-то другое? Если проект базы данных, вероятные настройки в свойствах проекта. – David

+0

Проект веб-сайта MVC. Нет базы данных. У меня есть пара файлов .sql, хотя ... он будет сканировать его? Я просто хочу удостовериться, что он не испортит мою производственную БД, введя пучки с моими локальными данными теста. – Steve

1

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

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

Предположим, вы хотите объявить переменные sql, такие как InitData, SeedData.

Вы можете сделать это, и у вас есть доступ к некоторым сценариям до и после публикации. Если ваша переменная SeedData истинна, вы можете засеять некоторые данные в сценарии публикации публикации.

Больше информации здесь: http://www.asp.net/web-forms/tutorials/deployment/web-deployment-in-the-enterprise/deploying-database-projects

EDIT: это только схема, которая обновляется, если вы не воссоздавать свою базу данных при публикации

+0

, который применим только к проекту базы данных? другие, такие как библиотека/веб-сайт, не учитываются. Я принимаю – Steve

+0

Да, только для проекта базы данных. –

Смежные вопросы