|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.09.2014, 21:21 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Обновление таблицы от версии к версии. Как?
Доброго времени суток!
Что вы делаете, если изменили структуру таблицы, добавили новую? |
13.09.2014, 23:08 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,888
|
Ну, во-первых, проектировать надо так, чтобы не пришлось потом менять ни структуру ни количество таблиц, хотя добавление можно предусмотреть для добавления независимых фич.
Во-вторых, на этапе постановки задачи, при подозрениях на необходимость серьёзных перемен можно рассмотреть задействование ОРМ. В-третьих, лично я для некоторых задач использую генераторы и построители. Как для SQL кода, так и для дельфи кода. С SQL-то понятно, написал скрипт обхода по всем таблицам, чтение полей, и генерации SQL кода в тексте для хранимых процедур (если что, речь об SQL SERVER, моей основной субд), часть процедур, ессно, пишется руками. Построение кода в дельфи - хитрее, во-первых надо задекларировать енум для всех таблиц (по одному значению на каждую) + один для общего кода, потом построить необходимый набор компонентов (датасурсы, адосторедпроцедуры, и ещё какие потребуются) циклом по описанному енуму. Связи между таблицами для всяких гридов делаются динамически, перестраиваются датасеты с привязками по автоподстраиваемым лукап-полям, с функциональностью определения нужных связей через те же енумы и имена-строки, для чего соблюдается политика именования всех причастных сущностей. Вся логика же заложена преимущественно в написанных руками хранимках, автогенерированные хранимки в основном для справочных таблиц, где единообразие. Могу показать наработки в какой-то части, но персонально и кусками. В-четвёртых, всё делается полностью руками. Так у меня на работе, в принципе, это не смертельно, полёт нормальный. |
16.09.2014, 01:08 | #3 |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 672
|
1 вариант
Ведем разработку на копии базы, которая в продакшене. Сделали ТЗ запланированные на версию, потом находим различия по метаданным между двумя базами, формируем скрипт, и накатываем его на базу требующую обновления... и так от версии к версии... 2 вариант "Разрабатывать базу данных скриптами", т.е. есть некая эталонная база, разработку ведем на копии данной базы, после изменения процедур и т.д. формируем скрипт различий, и так по каждой фиче... скрипты складываем, где нибудь в СКВ... в итоге имеем эталонную базу, которую можем собрать на любом стенде для тестов или для пользования... p/s/ я считаю не стоит пытаться проектировать структуру которую не придется менять, лучше проектировать так, что бы потом было легко изменять... ибо никогда неизвестно чего захочет заказчик... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как установить шаблон версии 9.7 на движок версии 9.8? | Vallerik | WordPress и другие CMS | 1 | 26.03.2013 12:34 |
Как использовать пробные версии программ постоянно | d1813 | Помощь студентам | 2 | 08.02.2011 11:57 |
Обновление программы по сети до новой версии | Letnab | Работа с сетью в Delphi | 4 | 29.07.2010 11:47 |
Программа проверяет обновление новой версии программы | xitroi | Общие вопросы Delphi | 24 | 15.07.2010 16:33 |
как в BIOS версии V1.0, Тип AMI, CD-ROM поставить в приоритете | wowan.mix | Компьютерное железо | 6 | 24.02.2010 19:21 |