저는 Snowflake DB에서 타이어를 걷어 차서 Liquibase와 어떻게 작동하는지보고 싶습니다. Snowflake가 타임 스탬프 필드를 가지고 있지만 Liquibase가 datetime의 데이터 형식으로 SQL을 발행하려고 시도 할 때 databasechangelog 테이블을 만들 때 문제가 발생합니다.liquibase와 snowflake db를 사용할 때 문제가 발생했습니다.
나는 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))
그리고 나는 받는다는 통해 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]
그것을 만들려고하고 실패 있도록이 databasechangelog 테이블을 찾을 수 liquibase를 나타납니다.
Snowflake의 History 메커니즘을 사용하여 실행 된 쿼리를보고 "DATABASECHANGELOG '계정과 같이 하나의 레코드를 반환하는 테이블을 보여줍니다. 하지만 앞으로 나아가 어쨌든 테이블을 만들려고합니다. –
필자는 Snowflake 용 Liquibase 확장 프로그램을 작성했습니다. https://github.com/CDKGlobal/liquibase-snowflake/에서 다운로드 할 수 있습니다. –