|
|
|
CVS для PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Думаю, вопрос уже обсуждался, но найти его напрямую мне не удалось. As is есть проект с логикой в PostgreSQL 8.0 на хранимых процедурах (оценочно - сотни 2). Клиент - достаточно тонкий, все данные в него передаются через view'ы. На данный момент клиент будет уточняться до браузера, а вот с базой хочу разобраться. Дело в том, что на протяжении 3 лет контроль версий осуществлялся просто ручным дописанием изменений в скрипт. Т.к. перерабатываться будет абсолютно все, хочется применить систему контроля версий. И если к PL/SQL можно подойти как к текстовым файлам, то как быть со структурами таблиц, представлениями? Если view еще тоже как-то можно подвести под текст, то как быть с таблицами??? И отдельный момент - отладка. Есть еще момент что должны храниться действия между релизами (для обновления данных) и в идеале - средство для генерации скрипта базы. В общем - ищется инструмент. Не обязательно free. Если такого нет, то хочу начать писать т.к. без контроля версий становится просто невыносимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 20:31 |
|
||
|
CVS для PostgreSQL
|
|||
|---|---|---|---|
|
#18+
AT/F0x пишет: > Т.к. перерабатываться будет абсолютно все, хочется применить систему > контроля версий. И если к PL/SQL можно подойти как к текстовым файлам, конечно же, так и нужно. > то как быть со структурами таблиц, представлениями? И к этому тоже как к текстовым файлам. Создание таблицы - такой же скрипт, как и создание вьюхи. > Если такого нет, то хочу начать писать т.к. без контроля версий > становится просто невыносимо. Нафига ? Любой редактор + любой VCS + любимая консолька. Вот и всё, что нужно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 20:53 |
|
||
|
CVS для PostgreSQL
|
|||
|---|---|---|---|
|
#18+
AT/F0x Т.к. перерабатываться будет абсолютно все, хочется применить систему контроля версий. И если к PL/SQL можно подойти как к текстовым файлам, то как быть со структурами таблиц, представлениями? Если view еще тоже как-то можно подвести под текст, то как быть с таблицами??? И отдельный момент - отладка. Есть еще момент что должны храниться действия между релизами (для обновления данных) и в идеале - средство для генерации скрипта базы. Если подходить как к текстовым файлам: CVS считается немного устаревшим. Лучше использовать SVN (SubVersion). В общем - ищется инструмент. Не обязательно free. Sybase PowerDesigner хороший инструмент. Имеет Repository для хранения версий, их сравнения и т.п., но PD дорогой. ...для скриптов на обновление (патчей) все равно придется использовать подход на текстовых файлах, хотя их (файлы) тоже можно хранить в моделях PD и Repository. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2009, 11:55 |
|
||
|
CVS для PostgreSQL
|
|||
|---|---|---|---|
|
#18+
У нас механизм следующий. В процессе подготовки релиза отлаживаем новую структуру на тестовых базах, готовим скрипты на обновление в виде текстовых файлов. Скрипты на каждый релиз сохраняем в CVS вручную. На машине, где происходит окончательная сборка, поддерживаем актуальную базу (структура + справочники). На ней прогоняем скрипты. После успешной сборки проекта генерируется единый скрипт для всей базы путем запуска батника вида: pg_dump -F p -U postgres -f D:\PostgreSQL\Data\db.sql BASE Полученный текстовый файл db.sql сохраняется в CVS - аналогичным способом. (наверно, во всех подобных средствах есть возможность загнать файл в контроль версий из командной строки) Все батники запускаются автоматически. Для управления всем процессом - сборка, выполнение командных файлов и т.д. - используем FinalBuilder. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2009, 13:14 |
|
||
|
CVS для PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за мнения. С SVN согласен, конечно. Просто никогда особо не пользовался внешними (использую встроенные в IDE). С view - тоже согласен, они как тексты. Касательно структуры таблиц - не согласен. Если хранимки и представления заменяются, то таблицы - обновляются. И diff'ы тут совсем неявные. Есть у меня одна наработка, которую подумал использовать. Суть проста - после очередного релиза в доступном формате (не SQL) - например XML описываются все таблицы с их полями (с указанием типов, размеров), ключами, индексами и проч. Клиентская программа обновления последовательно проверяет файл - если нет таблицы, создает полностью. Если есть таблица, проверяет ее компоненты - чего не хватает, создает. ИМХО этого метода будет достаточно для добавления полей. С удалением - стоит дополнительно подумать... Интересно ваше мнение. Также вопрос с дебаггингом. В принципе, он есть в EMS, да и ручную работу (edit+run) никто не отменял. Однако мб есть более правильные пути? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2009, 05:29 |
|
||
|
CVS для PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Зачем генерировать весь дамп базы? На продакшене будете всё удалять, чтобы дамп новый накатить? В продакшене можно делать только обновления. Соответственно, все скрипты будут содержать только обновления. И эти скрипты должны проходить жизненный цикл через три среды: DEV -> QA -> Production. Дополнительно, как тестировщик заберёт и накатит изменения в БД связанные с багом #231, чтобы после успешного тестирования скрипт затем поехал на Production? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 15:05 |
|
||
|
CVS для PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Что-то давнюю тему Вы поднимаете - автор топика уже давно выбрал приемлемый для себя вариант, надо полагать. Зачем генерировать весь дамп базы? Это очевидно. В общем случае при развертывании разрабатываемой системы на оборудовании пользователя (либо на тестовом стенде) с нуля - копируются бинарники, вносятся необходимые настройки в ОС, устанавливается СУБД (если надо), и заливается полная структура базы, актуальная, естественно. При обновлении уже установленной системы - то же самое, только СУБД не устанавливается, поскольку она уже есть, и вместо полного скрипта дампа выполняется упомянутый Вами скрипт на обновление структуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2010, 17:05 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36014735&tid=1542841]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
194ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 536ms |

| 0 / 0 |
