Liquibase не может выполнить схему (Snowflake) со смешанным регистром, например. (This_Schema) - PullRequest
0 голосов
/ 11 октября 2019

Я пробовал использовать жидкость для жидкостей для нашей снежной базы. Это все работает с тем, где имя SCHEMA во всех заглавных буквах (верхний регистр). Но liquibase не принимает ни одну из моих схем со смешанным регистром, например (This_Schema).

Я пытался поместить это, но не помогло.

<defaultSchemaName>This_Schema</defaultSchemaName>

Пример конфигурации POM.XML:

          <driver>net.snowflake.client.jdbc.SnowflakeDriver</driver>
          <url>jdbc:snowflake://${env.SNOWFLAKE_ACCOUNT}.eu-central-1.snowflakecomputing.com/?db=${env.SNOWFLAKE_DB}&amp;schema=${env.SNOWFLAKE_SCHEMA}&amp;warehouse=${env.SNOWFLAKE_WH}&amp;role=${env.SNOWFLAKE_ROLE}</url>
          <username>${env.SNOWFLAKE_USERNAME}</username>
          <password>${env.SNOWFLAKE_PASSWORD}</password>

Ошибка при настройке или запуске Liquibase: liquibase.exception.DatabaseException: ошибка компиляции SQL: [ОШИБКА] Схема 'LIQUIBASE_DB.THIS_SCHEMA' не существует. [Сбой SQL: СОЗДАТЬ ТАБЛИЦУ THIS_SCHEMA.DATABASECHANGELOGLOCK (ID INT НЕ НУЛЬ, ЗАБЛОКИРОВАНО BOOLEAN НЕ ПУСТО, LOCKGRANTED TIMESTAMP_NTZ, LOCKEDBY VARCHAR (255), CONSTRAINT PK_DATABASECHANGELOGLOCK 100 * * * *), ПЕРЕДАЛЯЕТСЯ, *1001* *), ПЕРЕДАЮЩИЙСЯ * 1001)имя моей схемы, как показано здесь, но после выполнения обновления liquibase это автоматически изменится на значение UPPERCASE, как и в случае ошибки выше.

1 Ответ

1 голос
/ 14 октября 2019

Найден этот комментарий в файле README с расширением liquibase снежинки.

Реализация драйверами JDBC Snowflake жестких кодов DatabaseMetadata.getTables(), заключенных в кавычки вокруг каталога, схемы и имен таблиц, что приводит к запросамформа:

show tables like 'DATABASECHANGELOG' in schema "sample_db"."sample_schema"

В результате таблица DATABASECHANGELOG не будет найдена даже после ее создания. Поскольку Snowflake хранит имена каталогов и схем в верхнем регистре, getJdbcCatalogName возвращает значение в верхнем регистре.

Может ли это объяснить ваши проблемы? ...

...