powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Изменение схемы существующей БД и поддержка версионности
7 сообщений из 7, страница 1 из 1
Изменение схемы существующей БД и поддержка версионности
    #35469406
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня

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

С уважением,
Давыдов Виталий
...
Рейтинг: 0 / 0
Изменение схемы существующей БД и поддержка версионности
    #35469447
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
davydoffВсем доброго дня
Мне интересно, как у вас построен процесс разработки БД и контроль версий. В каком виде вы храните изменения в БД?


См. ссылку . Там описаны несколько подходов. "Метод “таблиц-двойников”" мне наиболее симпатичен, ИМХО. Однако, если данные изменяются очень часто, стОит подумать о другом методе. Под "изменением" в данном случае я имею ввиду операции DELETE и UPDATE, но не INSERT.
...
Рейтинг: 0 / 0
Изменение схемы существующей БД и поддержка версионности
    #35469659
bebop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таки вопрос про версионность схемы или версионность схемы и данных?

Если интересует только версионность схемы - то у нас устроено так:
Каждую ночь автоматический таск сгружает заскриптованные описания всех объектов базы данных (таблицы, триггера, ХП, функции итп) в текстовом виде в Visual Source Safe.
Удобно смотреть за эволюцией схемы по диффам между разными версиями одного объекта.
Неудобно, то что не видны промежуточные изменения сделанные в течении дня .
Неудобно, что не виден автор изменения (автор везде - системный логин).

Для нас неудобства не принципиальны из-за особенностей процесса разработки.
...
Рейтинг: 0 / 0
Изменение схемы существующей БД и поддержка версионности
    #35470257
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L davydoffВсем доброго дня
Мне интересно, как у вас построен процесс разработки БД и контроль версий. В каком виде вы храните изменения в БД?


См. ссылку . Там описаны несколько подходов. "Метод “таблиц-двойников”" мне наиболее симпатичен, ИМХО. Однако, если данные изменяются очень часто, стОит подумать о другом методе. Под "изменением" в данном случае я имею ввиду операции DELETE и UPDATE, но не INSERT. Не то :(
...
Рейтинг: 0 / 0
Изменение схемы существующей БД и поддержка версионности
    #35470389
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
davydoffВ каком виде вы храните изменения в БД?
Если изменение незначительно и не затрагивает функционал (добавили какое-то необязательное поле), то в виде скриптов на изменение. Т.е. файл может выглядеть как-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
/*...*/
CREATE TABLE T1 ...
GO
/*...*/
ALTER TABLE T1 ...
GO
...

Другой способ - файлы с переходными скриптами от версии к версии
...
Рейтинг: 0 / 0
Изменение схемы существующей БД и поддержка версионности
    #35470731
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, спасибо за комментарии. Задача состоит в том, чтобы хранить текущую актуальную схему БД в виде файлов на диске. В БД есть данные. Есть данные в БД, версионность которых нужно поддерживать. Сейчас я использую подход, который привел sti - файлы с переходными скриптами. Есть некоторая базовая схема, к которой применяется скрипт. В итоге схема переходит в другой вид. Сейчас в репозитории каждая таблица (create table) хранится в виде отдельного файла. Аналогично хранятся другие объекты. Теперь представьте, я добавляю новый столбец в таблицу с данными. Я не могу это сделать, изменив файл, где эта таблица создается. Иначе данные будут потеряны. В итоге, я создаю скрипт - выполняется alter table. При этом файл с таблицей тоже надо изменять, чтобы поддерживать исходники в актуальном состоянии. В общем, все нетривиально получается. Для меня проблемы разобраться нет, но придет другой человек и не сможет использовать репозиторий, для того чтобы воспроизвести актуальную схему в БД.
...
Рейтинг: 0 / 0
Изменение схемы существующей БД и поддержка версионности
    #35472281
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
davydoffСейчас я использую подход, который привел sti - файлы с переходными скриптами. Есть некоторая базовая схема, к которой применяется скрипт. В итоге схема переходит в другой вид.так все и делают
davydoffСейчас в репозитории каждая таблица (create table) хранится в виде отдельного файла.а как решается проблема со связями между таблицами - тригерами и порядком их создания ? davydoffТеперь представьте, я добавляю новый столбец в таблицу с данными. Я не могу это сделать, изменив файл, где эта таблица создается. Иначе данные будут потеряны. В итоге, я создаю скрипт - выполняется alter table. При этом файл с таблицей тоже надо изменять, чтобы поддерживать исходники в актуальном состоянии. В общем, все нетривиально получается. Для меня проблемы разобраться нет, но придет другой человек и не сможет использовать репозиторий, для того чтобы воспроизвести актуальную схему в БД.для некоторых СУБД есть автоматизированные средства производящие сравнение схемы данных и самих данных в двух базах и генерящие скрипт приведения одной базы в другую. но они не всегда работают и не всегда правильно... :)

http://database-comparison.qarchive.org/

я пробовал EMS DB Comparer for PostgreSQL правда по-моему предыдущую версию или предпредыдущую - была просто не работоспособна. теряла информацию о правах доступа при синхронизации/сравнении, для не совсем уж простых связей просто генерировала битый синтаксически alter скрипт...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Изменение схемы существующей БД и поддержка версионности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]