使用liquibase和雪花数据库的问题

liquibase snowflake-datawarehouse

365 观看

2回复

245 作者的声誉

我在Snowflake DB上试了一下,想看看它如何与Liquibase一起工作。由于Snowflake具有时间戳字段,但是在创建databasechangelog表时遇到问题,但是Liquibase尝试使用日期时间的数据类型发出SQL。

我遵循了http://www.liquibase.org/databases.html上的想法,并只是在liquibase部署之外创建了databasechangelog表。

CREATE TABLE bruces.DATABASECHANGELOG (ID VARCHAR(255) NOT NULL, AUTHOR VARCHAR(255) NOT NULL, FILENAME VARCHAR(255) NOT NULL, DATEEXECUTED timestamp NOT NULL, ORDEREXECUTED INT NOT NULL, EXECTYPE VARCHAR(10) NOT NULL, MD5SUM VARCHAR(35), DESCRIPTION VARCHAR(255), COMMENTS VARCHAR(255), TAG VARCHAR(255), LIQUIBASE VARCHAR(20), CONTEXTS VARCHAR(255), LABELS VARCHAR(255))

然后,我通过maven开始了liquibase部署。

WARNING 1/24/17 5:03 PM: liquibase: Unknown database: Snowflake
[INFO] Executing on Database: jdbc:snowflake://*****.snowflakecomputing.com/?db=BRUCE_DB&warehouse=BRUCE_WH
INFO 1/24/17 5:03 PM: liquibase: Successfully acquired change log lock
INFO 1/24/17 5:03 PM: liquibase: Creating database history table with name: bruces.DATABASECHANGELOG
INFO 1/24/17 5:03 PM: liquibase: Successfully released change log lock
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15.432 s
[INFO] Finished at: 2017-01-24T17:03:56-06:00
[INFO] Final Memory: 16M/305M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.4.0:update (default) on project snowflake.snowflake_app: Error setting up or running Liquibase: SQL compilation error:
[ERROR] Unsupported data type 'TOK_DATETIME'. [Failed SQL: CREATE TABLE bruces.DATABASECHANGELOG (ID VARCHAR(255) NOT NULL, AUTHOR VARCHAR(255) NOT NULL, FILENAME VARCHAR(255) NOT NULL, DATEEXECUTED datetime NOT NULL, ORDEREXECUTED INT NOT NULL, EXECTYPE VARCHAR(10) NOT NULL, MD5SUM VARCHAR(35), DESCRIPTION VARCHAR(255), COMMENTS VARCHAR(255), TAG VARCHAR(255), LIQUIBASE VARCHAR(20), CONTEXTS VARCHAR(255), LABELS VARCHAR(255))]
[ERROR] -> [Help 1]

看来liquibase无法找到databasechangelog表,因此它尝试创建它并失败。

作者: bruce szalwinski 的来源 发布者: 2017 年 1 月 24 日

回应 (2)


1

5822 作者的声誉

决定

我完全不了解SnowflakeDB,我建议最好的方法是为SnowflakeDB编写新的数据库实现。SQL的方言差异很大,如果您提早遇到问题,那么在进行过程中可能会遇到更多问题。

作者: SteveDonie 发布者: 25.01.2017 03:50

1

2340 作者的声誉

问题是,今天Snowflake不支持DATETIME数据类型。它确实支持DATETIMESTAMP,这是标准SQL。

目前正在努力将其添加到Snowflake,将要求研究它的团队在此处添加更新。

作者: Marcin Zukowski 发布者: 25.01.2017 06:02
32x32