Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / CVS для PostgreSQL / 8 сообщений из 8, страница 1 из 1
27.05.2009, 20:31
    #36011843
AT/F0x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CVS для PostgreSQL
Думаю, вопрос уже обсуждался, но найти его напрямую мне не удалось.

As is есть проект с логикой в PostgreSQL 8.0 на хранимых процедурах (оценочно - сотни 2). Клиент - достаточно тонкий, все данные в него передаются через view'ы.

На данный момент клиент будет уточняться до браузера, а вот с базой хочу разобраться. Дело в том, что на протяжении 3 лет контроль версий осуществлялся просто ручным дописанием изменений в скрипт.

Т.к. перерабатываться будет абсолютно все, хочется применить систему контроля версий. И если к PL/SQL можно подойти как к текстовым файлам, то как быть со структурами таблиц, представлениями? Если view еще тоже как-то можно подвести под текст, то как быть с таблицами??? И отдельный момент - отладка.

Есть еще момент что должны храниться действия между релизами (для обновления данных) и в идеале - средство для генерации скрипта базы.

В общем - ищется инструмент. Не обязательно free.

Если такого нет, то хочу начать писать т.к. без контроля версий становится просто невыносимо.
...
Рейтинг: 0 / 0
27.05.2009, 20:53
    #36011878
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CVS для PostgreSQL
AT/F0x пишет:

> Т.к. перерабатываться будет абсолютно все, хочется применить систему
> контроля версий. И если к PL/SQL можно подойти как к текстовым файлам,

конечно же, так и нужно.

> то как быть со структурами таблиц, представлениями?

И к этому тоже как к текстовым файлам. Создание таблицы - такой же скрипт,
как и создание вьюхи.

> Если такого нет, то хочу начать писать т.к. без контроля версий
> становится просто невыносимо.

Нафига ? Любой редактор + любой VCS + любимая консолька. Вот и всё,
что нужно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.05.2009, 09:51
    #36012415
Alexandr Nikolaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CVS для PostgreSQL
MasterZiv + 1
...
Рейтинг: 0 / 0
28.05.2009, 11:55
    #36012769
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CVS для PostgreSQL
AT/F0x
Т.к. перерабатываться будет абсолютно все, хочется применить систему контроля версий. И если к PL/SQL можно подойти как к текстовым файлам, то как быть со структурами таблиц, представлениями? Если view еще тоже как-то можно подвести под текст, то как быть с таблицами??? И отдельный момент - отладка.

Есть еще момент что должны храниться действия между релизами (для обновления данных) и в идеале - средство для генерации скрипта базы.


Если подходить как к текстовым файлам:
CVS считается немного устаревшим. Лучше использовать SVN (SubVersion).

В общем - ищется инструмент. Не обязательно free.
Sybase PowerDesigner хороший инструмент. Имеет Repository для хранения версий, их сравнения и т.п., но PD дорогой.
...для скриптов на обновление (патчей) все равно придется использовать подход на текстовых файлах, хотя их (файлы) тоже можно хранить в моделях PD и Repository.
...
Рейтинг: 0 / 0
28.05.2009, 13:14
    #36013058
CVS для PostgreSQL
У нас механизм следующий.
В процессе подготовки релиза отлаживаем новую структуру на тестовых базах, готовим скрипты на обновление в виде текстовых файлов. Скрипты на каждый релиз сохраняем в CVS вручную.
На машине, где происходит окончательная сборка, поддерживаем актуальную базу (структура + справочники). На ней прогоняем скрипты. После успешной сборки проекта генерируется единый скрипт для всей базы путем запуска батника вида:
pg_dump -F p -U postgres -f D:\PostgreSQL\Data\db.sql BASE
Полученный текстовый файл db.sql сохраняется в CVS - аналогичным способом. (наверно, во всех подобных средствах есть возможность загнать файл в контроль версий из командной строки)
Все батники запускаются автоматически. Для управления всем процессом - сборка, выполнение командных файлов и т.д. - используем FinalBuilder.
...
Рейтинг: 0 / 0
29.05.2009, 05:29
    #36014735
AT/F0x
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CVS для PostgreSQL
Спасибо всем за мнения. С SVN согласен, конечно. Просто никогда особо не пользовался внешними (использую встроенные в IDE). С view - тоже согласен, они как тексты.

Касательно структуры таблиц - не согласен. Если хранимки и представления заменяются, то таблицы - обновляются. И diff'ы тут совсем неявные. Есть у меня одна наработка, которую подумал использовать.

Суть проста - после очередного релиза в доступном формате (не SQL) - например XML описываются все таблицы с их полями (с указанием типов, размеров), ключами, индексами и проч. Клиентская программа обновления последовательно проверяет файл - если нет таблицы, создает полностью. Если есть таблица, проверяет ее компоненты - чего не хватает, создает.

ИМХО этого метода будет достаточно для добавления полей. С удалением - стоит дополнительно подумать...

Интересно ваше мнение.

Также вопрос с дебаггингом. В принципе, он есть в EMS, да и ручную работу (edit+run) никто не отменял. Однако мб есть более правильные пути?
...
Рейтинг: 0 / 0
17.02.2010, 15:05
    #36475308
web_fox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CVS для PostgreSQL
Зачем генерировать весь дамп базы? На продакшене будете всё удалять, чтобы дамп новый накатить?

В продакшене можно делать только обновления. Соответственно, все скрипты будут содержать только обновления. И эти скрипты должны проходить жизненный цикл через три среды: DEV -> QA -> Production.

Дополнительно, как тестировщик заберёт и накатит изменения в БД связанные с багом #231, чтобы после успешного тестирования скрипт затем поехал на Production?
...
Рейтинг: 0 / 0
18.02.2010, 17:05
    #36478211
CVS для PostgreSQL
Что-то давнюю тему Вы поднимаете - автор топика уже давно выбрал приемлемый для себя вариант, надо полагать.
Зачем генерировать весь дамп базы? Это очевидно. В общем случае при развертывании разрабатываемой системы на оборудовании пользователя (либо на тестовом стенде) с нуля - копируются бинарники, вносятся необходимые настройки в ОС, устанавливается СУБД (если надо), и заливается полная структура базы, актуальная, естественно. При обновлении уже установленной системы - то же самое, только СУБД не устанавливается, поскольку она уже есть, и вместо полного скрипта дампа выполняется упомянутый Вами скрипт на обновление структуры.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / CVS для PostgreSQL / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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