Database project и Schema update script, что я делаю не так?
От: Mr.Delphist  
Дата: 27.10.10 19:31
Оценка:
В общем, упала на голову задача: есть ASP.NET проект, надо автоматизировать накатывание изменений в структуре базы (на тестовый сервак, на продакшн и т.п.). Погуглил на тему, остановился на Database Project из состава Visual Studio, вот неплохой подкаст на тему: http://channel9.msdn.com/posts/wriju/Visua...se-Development/

Но на практике тут же начались грабли. Получается, что этот подход автоматизирует работу со структурой базы, но не её с данными. Скажем, при переименовании колонки (через Refactor, а не руками), Студия рисует вот такой дуболомный upgrade-скрипт:


...
GO
ALTER TABLE [dbo].[Dummy2] DROP COLUMN [column_2];
 
GO
ALTER TABLE [dbo].[Dummy2]
   ADD [column_dummy] INT NULL;
...


Понятно, что если на целевой базе были какие-то данные, то этот скрипт при накатывании тупо их потрёт. Хотелось бы
1) не рисовать подобные скрипты руками
2) не терять данные

Нетривиальные изменения структуры всё равно потребуют ручных скриптов, это ясно, но почему такая элементарщина лажает? Что я делаю не так?
database project upgrade script
Re: Database project и Schema update script, что я делаю не
От: ZAMUNDA Земля для жалоб и предложений
Дата: 28.10.10 23:39
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Погуглил на тему, остановился на Database Project из состава Visual Studio, вот неплохой подкаст на тему: http://channel9.msdn.com/posts/wriju/Visua...se-Development/

"Подкаст" это прикол значит чтоль? — Ммм... сцылко смешит.

MD>Но на практике тут же начались грабли. Получается, что этот подход автоматизирует работу со структурой базы, но не её с данными. Скажем, при переименовании колонки (через Refactor, а не руками), Студия рисует вот такой дуболомный upgrade-скрипт:

Через какой Refactor?

Вполне приемлимо с этим справляется SQL Assist. Однако, бедняга, путает погонялова с именами полей, при переделке хранимок и т.п. Но он показывает, что собирается делать, так что можно перейти на "ручное управление" и поправить.
RedGate тож умеет это, но я не особо много его гонял.
Но это всё буржуйское, т.е. заденьги.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Re[2]: Database project и Schema update script, что я делаю
От: Mr.Delphist  
Дата: 29.10.10 11:33
Оценка:
Здравствуйте, ZAMUNDA, Вы писали:

ZAM>Здравствуйте, Mr.Delphist, Вы писали:


MD>>Погуглил на тему, остановился на Database Project из состава Visual Studio, вот неплохой подкаст на тему: http://channel9.msdn.com/posts/wriju/Visua...se-Development/

ZAM>"Подкаст" это прикол значит чтоль? — Ммм... сцылко смешит.
В смысле туториал. А чем Вас Channel9 смешит?

MD>>Но на практике тут же начались грабли. Получается, что этот подход автоматизирует работу со структурой базы, но не её с данными. Скажем, при переименовании колонки (через Refactor, а не руками), Студия рисует вот такой дуболомный upgrade-скрипт:

ZAM>Через какой Refactor?
В контекстном меню, когда лазаешь по Schema View. Можно руками переименовывать, но тогда надо всё руками, а Refactor находит все ссылки и предлагаеть менять автоматом.

ZAM>Вполне приемлимо с этим справляется SQL Assist. Однако, бедняга, путает погонялова с именами полей, при переделке хранимок и т.п. Но он показывает, что собирается делать, так что можно перейти на "ручное управление" и поправить.

ZAM>RedGate тож умеет это, но я не особо много его гонял.
ZAM>Но это всё буржуйское, т.е. заденьги.
Не хотелось бы далеко отклоняться от бесплатности (кроме Visual Studio, ибо уже куплена) и MS-driven технологий, но за имена — спасибо, погуглю.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.