Настройка схемы по умолчанию для базы данных Vertica - PullRequest
8 голосов
/ 27 мая 2011

Я создаю веб-приложение с помощью Play!с базой данных Vertica в качестве серверной части.Строка соединения JDBC для Vertica содержит имя сервера и базы данных, но мои таблицы находятся под определенной схемой (скажем, «dev_myschema»).Таким образом, я должен ссылаться на мою таблицу как «dev_myschema.mytable».Также есть точная копия всех этих таблиц в производственной схеме (скажем, «prod_myschema») с реальными данными.

Я хотел бы задать имя этой схемы в файле конфигурации, чтобы было легко переключаться между этими двумя схемами.На данный момент у меня есть метод getConnection во вспомогательном классе, который выполняет функцию DB.getConnection () и устанавливает настроенную схему в качестве схемы по умолчанию для этого объекта подключения.Однако то же самое не помогает в других модельных классах, где оно упоминается вместе с аннотацией сущности (@Entity @Table (name = dev_myschema.mytable))

Есть ли способ, которым я могу указать схемуимя в файле конфигурации и считывание его методом подключения, а также аннотациями модели?

Спасибо.

Ответы [ 5 ]

7 голосов
/ 03 мая 2012

Юджин понял это почти правильно, но ему не хватало подчеркивания.Правильный синтаксис Vertica SQL для установки схемы по умолчанию:

set search_path to dev_myschema

Как предложил Евгений, если вы используете низкоуровневую JDBC, как только вы создадите свой объект Connection, вы можете сделать:

conn.createStatement().executeUpdate("set search_path to " + schemaName);
1 голос
/ 30 августа 2011

Насколько я знаю (и я только что отсканировал документацию по 4.1.7), пока еще нет способа установить схему по умолчанию.

0 голосов
/ 02 июля 2014

В 7.0 администратор может установить его на уровне пользователя, выполнив следующую команду:

alter user user_name search_path schema1,schema2;
0 голосов
/ 27 марта 2012

Они решают эту проблему, выполняя команду «установить путь поиска», если я использую мою схему разработки.Итак, как только ваш объект соединения Vertica будет создан, выполните следующую команду:

    "set search path to dev_myschema"

В моем коде приложения у меня просто есть объект Vertica, который проверяет переменную окружения / конфигурации, и если "схема dev"msgstr "настройка присутствует, она выполняет это утверждение при установлении соединения.Моя производственная конфигурация не имеет такой настройки, поэтому в этом случае она будет просто использовать схему по умолчанию и не потребует дополнительных затрат при выполнении этого оператора каждый раз.

0 голосов
/ 28 сентября 2011

согласно руководству по sql, схема по умолчанию является первой найденной в вашем дереве поиска.возможно, вы могли бы воспользоваться этим и убедиться, что ваша копия найдена первой.

...