Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Условное выполнение (conditional execution) в SQL скрипте / 8 сообщений из 8, страница 1 из 1
21.08.2008, 12:59
    #35498957
Robert Ayrapetyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условное выполнение (conditional execution) в SQL скрипте
Возможно ли в SQL-скрипте использовать IFDEF-like директивы? Например, при инициализации базы отладочной нужно делать COPY одних файлов, а релизной - других. Надоело комментировать\раскомментировать строки для разных версий.
...
Рейтинг: 0 / 0
21.08.2008, 13:08
    #35498991
SeniorAndre
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условное выполнение (conditional execution) в SQL скрипте
Заводится таблица с параметрами (если её еще нет), туда пишем номер версии БД, а в коде ставим вызов функции, которая возвращает версию БД и на основании этого ветвим код в любом месте. Тоже самое можно сделать с DebugMode. В БД разработки у меня стоит True для параметра "isDebugMode", а в рабочей БД он False.
Конечно больше запросов, но они кэшируются.
...
Рейтинг: 0 / 0
21.08.2008, 14:02
    #35499218
Robert Ayrapetyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условное выполнение (conditional execution) в SQL скрипте
Я наверно неправильно выразил вопрос.
У меня есть скрипт, огроменный. Вначале идут CREATE USER, потом десятки CREATE TABLE, десятки CREATE FUNCTION, потом в конце скрипта десятки COPY (инициализация таблиц).
В зависимости от релиз/дебаг мне приходится комментировать одну группу COPY и раскомментировать другую. Надоело это делать.

Теперь, можно вынести все COPY в отдельную процедуру и вызывать ее же из общего скрипта. Но опять же, нужно инициализировать таблицу "с параметрами" isDebug (INSERT-ами из общего скрипта?). Где-то в скрипте это выискивать все время и менять тоже утомительно, вот если бы можно было сделать DEFINE DB_VER "DEBUG" в начале SQL скрипта было бы зашибись.
...
Рейтинг: 0 / 0
21.08.2008, 14:22
    #35499307
chAlx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условное выполнение (conditional execution) в SQL скрипте
Robert AyrapetyanУ меня есть скрипт, огроменный. Вначале идут CREATE USER
Ну так вот же, в начале идёт -- чем не переменная? ;) CREATE USER debug_mode_off , потом в процедуре проверить его наличие чем-нибудь типа has_database_privilege().
...
Рейтинг: 0 / 0
21.08.2008, 14:23
    #35499319
chAlx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условное выполнение (conditional execution) в SQL скрипте
Или даже без процедуры обойтись: под одним юзером одно добавлять, под другим другое, а в начале создавать одного из них.
Только варнингов будет..
...
Рейтинг: 0 / 0
21.08.2008, 18:09
    #35500200
Robert Ayrapetyan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условное выполнение (conditional execution) в SQL скрипте
Это все не то... Да, слаб SQL-Script. Неужели все так и создают юзеров с именем версии?
...
Рейтинг: 0 / 0
22.08.2008, 11:42
    #35501168
Jelis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условное выполнение (conditional execution) в SQL скрипте
Я в таком случае разбиваю sql скрипт на части (инициализация пользователлей, таблиц, представлений, рабочие данные, тестовые данные) и просто делаю два разных (а можно и один с переменной DEBUG) шеловских скрипта, в которых выполняю только необходимые части.
...
Рейтинг: 0 / 0
22.08.2008, 11:54
    #35501218
SeniorAndre
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условное выполнение (conditional execution) в SQL скрипте
Аналогично есть куча скриптов, последовательным запуском которых можно создать любую версию БД. А сборка батниками
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Условное выполнение (conditional execution) в SQL скрипте / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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