разность жидкостей ... не находит никакой разницы? - PullRequest
0 голосов
/ 05 ноября 2019

Используя liquibase 3.8.0, я пытаюсь найти различия между двумя базами данных Snowflake.

. Для простоты я использую файл liquibase.properties следующим образом

driver: net.snowflake.client.jdbc.SnowflakeDriver
classpath: liquibase-snowflake-1.0.jar
url: jdbc:snowflake://XXXXX.snowflakecomputing.com/?db=MyDB1&warehouse=MyWarehouse&role=SYSADMIN
username: MyLogin
password: MyPassword

referenceUrl: jdbc:snowflake://XXXXX.snowflakecomputing.com/?db=MyDB2&warehouse=MyWarehouse&role=SYSADMIN
referenceUsername: MyLogin
referencePassword: MyPassword
referenceDriver: net.snowflake.client.jdbc.SnowflakeDriver

Я указываюв каждом случае разные базы данных: MyDB1 & MyDB2

В той же папке я запускаю команду liquibase diff

Затем я получаю следующий ответ ...

Starting Liquibase at Tue, 05 Nov 2019 11:38:39 GMT (version 3.8.0 built at 2019-08-15T20:38:06Z)
Liquibase Community 3.8.0 by Datical

Diff Results:
Reference Database: eric.mamet @ jdbc:snowflake://XXXXX.snowflakecomputing.com/
Comparison Database: eric.mamet @ jdbc:snowflake://XXXXX.snowflakecomputing.com/
Compared Schemas:
Product Name: EQUAL
Product Version: EQUAL
Missing Catalog(s): NONE
Unexpected Catalog(s): NONE
Changed Catalog(s): NONE
Missing Check Constraint(s): NONE
Unexpected Check Constraint(s): NONE
Changed Check Constraint(s): NONE
Missing Column(s): NONE
Unexpected Column(s): NONE
Changed Column(s): NONE
Missing Database Package(s): NONE
Unexpected Database Package(s): NONE
Changed Database Package(s): NONE
Missing Database Package Body(s): NONE
Unexpected Database Package Body(s): NONE
Changed Database Package Body(s): NONE
Missing Foreign Key(s): NONE
Unexpected Foreign Key(s): NONE
Changed Foreign Key(s): NONE
Missing Function(s): NONE
Unexpected Function(s): NONE
Changed Function(s): NONE
Missing Index(s): NONE
Unexpected Index(s): NONE
Changed Index(s): NONE
Missing Primary Key(s): NONE
Unexpected Primary Key(s): NONE
Changed Primary Key(s): NONE
Missing Schema(s): NONE
Unexpected Schema(s): NONE
Changed Schema(s): NONE
Missing Sequence(s): NONE
Unexpected Sequence(s): NONE
Changed Sequence(s): NONE
Missing Stored Procedure(s): NONE
Unexpected Stored Procedure(s): NONE
Changed Stored Procedure(s): NONE
Missing Table(s): NONE
Unexpected Table(s): NONE
Changed Table(s): NONE
Missing Trigger(s): NONE
Unexpected Trigger(s): NONE
Changed Trigger(s): NONE
Missing Unique Constraint(s): NONE
Unexpected Unique Constraint(s): NONE
Changed Unique Constraint(s): NONE
Missing View(s): NONE
Unexpected View(s): NONE
Changed View(s): NONE
Liquibase command 'diff' was executed successfully.

Я "беспокоюсь" о первых двух строках вывода ...

Может ли быть так, что он игнорирует мои ?db= параметры в URL-адресах?

Я что-то упустил из виду???

Ответы [ 2 ]

2 голосов
/ 07 ноября 2019

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

Для этого просмотрите историю запросов сеансов этого пользователя в представлении SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY. В представлении есть поля, которые сообщают вам контекст выполненных запросов, например, роль, хранилище, имя базы данных и имя схемы.

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

Говоря о схемах, я удивлен, что вы не вызываете их в URL-адресе JDBCЭто еще одна вещь, которую я проверю. Мне кажется, что db = dbNameHere выглядит правильно.

Ссылка на документы по истории запросов здесь:

https://docs.snowflake.net/manuals/sql-reference/account-usage/query_history.html#query-history-view

Надеюсь, это поможет ... Рич

0 голосов
/ 07 ноября 2019

Liquibase не AFAIK поддерживает Snowflake. Что касается метаданных, Snowflake работает в основном как Postgres, так что вы можете попробовать это. Я посмотрел на добавление поддержки в Liquibase для Snowflake и обнаружил, что кодовая база не позволяет легко добавлять дополнительную поддержку базы данных. В конце концов я пошел в Flyway для управления схемой Snowflake. Я знаю, что на самом деле не отвечает на ваш вопрос, но хотел бы поделиться в качестве фона.

...