2015-04-28 30 views
1

我正在使用具有flyway-gradle-plugin(3.2.1)的Gradle脚本(ver 2.3)将数据库更改部署到Amazon Redshift群集数据库中。元数据表正在多次创建并且与Amazon Redshift数据库失败

Flyway plugin: 'org.flywaydb:flyway-gradle-plugin:3.2.1' 
Driver jar:'RedshiftJDBC41-1.1.2.0002.jar' 
Driver class: 'com.amazon.redshift.jdbc41.Driver' 

现在的问题是(a)之后的元数据和(b)custome SQL脚本被执行是越来越创建的元数据表的两倍,即一次。执行(gradle clean build flywayMigrate --debug)后,只有“test_schema.test_tbl”表存在,但“test_schema.DB_SCHEMA_VER”不存在于Redshift数据库中。 请建议。

完整的堆栈跟踪如下:

14:48:29.327 [INFO] [org.flywaydb.core.internal.metadatatable.MetaDataTableImpl] Creating Metadata table: "test_schema"."DB_SCHEMA_VER" 
14:48:29.342 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Found statement at line 17: CREATE TABLE "test_schema"."DB_SCHEMA_VER" (
    "version_rank" INT NOT NULL, 
    "installed_rank" INT NOT NULL, 
    "version" VARCHAR(50) NOT NULL, 
    "description" VARCHAR(200) NOT NULL, 
    "type" VARCHAR(20) NOT NULL, 
    "script" VARCHAR(1000) NOT NULL, 
    "checksum" INTEGER, 
    "installed_by" VARCHAR(100) NOT NULL, 
    "installed_on" TIMESTAMP NOT NULL DEFAULT getdate(), 
    "execution_time" INTEGER NOT NULL, 
    "success" BOOLEAN NOT NULL 
) 
14:48:29.342 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Found statement at line 30: ALTER TABLE "test_schema"."DB_SCHEMA_VER" ADD CONSTRAINT "DB_SCHEMA_VER_pk" PRIMARY KEY ("version") 
14:48:29.342 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Executing SQL: CREATE TABLE "test_schema"."DB_SCHEMA_VER" (
    "version_rank" INT NOT NULL, 
    "installed_rank" INT NOT NULL, 
    "version" VARCHAR(50) NOT NULL, 
    "description" VARCHAR(200) NOT NULL, 
    "type" VARCHAR(20) NOT NULL, 
    "script" VARCHAR(1000) NOT NULL, 
    "checksum" INTEGER, 
    "installed_by" VARCHAR(100) NOT NULL, 
    "installed_on" TIMESTAMP NOT NULL DEFAULT getdate(), 
    "execution_time" INTEGER NOT NULL, 
    "success" BOOLEAN NOT NULL 
) 
14:48:29.389 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Executing SQL: ALTER TABLE "test_schema"."DB_SCHEMA_VER" ADD CONSTRAINT "DB_SCHEMA_VER_pk" PRIMARY KEY ("version") 
14:48:29.420 [DEBUG] [org.flywaydb.core.internal.metadatatable.MetaDataTableImpl] Metadata table "test_schema"."DB_SCHEMA_VER" created. 
14:48:29.420 [DEBUG] [org.flywaydb.core.internal.dbsupport.Table] Locking table "test_schema"."DB_SCHEMA_VER"... 
14:48:29.482 [DEBUG] [org.flywaydb.core.internal.dbsupport.Table] Lock acquired for table "test_schema"."DB_SCHEMA_VER" 
14:48:29.498 [INFO] [org.flywaydb.core.internal.command.DbMigrate] Current version of schema "test_schema": << Empty Schema >> 
14:48:29.498 [INFO] [org.flywaydb.core.internal.command.DbMigrate] Migrating schema "test_schema" to version 1.0.0.0001 - Create tables 
14:48:29.498 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Found statement at line 8: create table test_schema.test_tbl 
(
    code varchar(30), 
    description varchar(50) 
) 
14:48:29.498 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Found statement at line 14: insert into test_schema.test_tbl (code, description) values ('a1', 'test description 1') 
14:48:29.498 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Found statement at line 15: insert into test_schema.test_tbl (code, description) values ('a2', 'test description 2') 
14:48:29.514 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Executing SQL: create table test_schema.test_tbl 
(
    code varchar(30), 
    description varchar(50) 
) 
14:48:29.545 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Executing SQL: insert into test_schema.test_tbl (code, description) values ('a1', 'test description 1') 
14:48:29.576 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Executing SQL: insert into test_schema.test_tbl (code, description) values ('a2', 'test description 2') 
14:48:29.716 [DEBUG] [org.flywaydb.core.internal.command.DbMigrate] Successfully completed and committed migration of schema "test_schema" to version 1.0.0.0001 
14:48:29.732 [INFO] [org.flywaydb.core.internal.metadatatable.MetaDataTableImpl] Creating Metadata table: "test_schema"."DB_SCHEMA_VER" 
14:48:29.732 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Found statement at line 17: CREATE TABLE "test_schema"."DB_SCHEMA_VER" (
    "version_rank" INT NOT NULL, 
    "installed_rank" INT NOT NULL, 
    "version" VARCHAR(50) NOT NULL, 
    "description" VARCHAR(200) NOT NULL, 
    "type" VARCHAR(20) NOT NULL, 
    "script" VARCHAR(1000) NOT NULL, 
    "checksum" INTEGER, 
    "installed_by" VARCHAR(100) NOT NULL, 
    "installed_on" TIMESTAMP NOT NULL DEFAULT getdate(), 
    "execution_time" INTEGER NOT NULL, 
    "success" BOOLEAN NOT NULL 
) 
14:48:29.732 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Found statement at line 30: ALTER TABLE "test_schema"."DB_SCHEMA_VER" ADD CONSTRAINT "DB_SCHEMA_VER_pk" PRIMARY KEY ("version") 
14:48:29.732 [DEBUG] [org.flywaydb.core.internal.dbsupport.SqlScript] Executing SQL: CREATE TABLE "test_schema"."DB_SCHEMA_VER" (
    "version_rank" INT NOT NULL, 
    "installed_rank" INT NOT NULL, 
    "version" VARCHAR(50) NOT NULL, 
    "description" VARCHAR(200) NOT NULL, 
    "type" VARCHAR(20) NOT NULL, 
    "script" VARCHAR(1000) NOT NULL, 
    "checksum" INTEGER, 
    "installed_by" VARCHAR(100) NOT NULL, 
    "installed_on" TIMESTAMP NOT NULL DEFAULT getdate(), 
    "execution_time" INTEGER NOT NULL, 
    "success" BOOLEAN NOT NULL 
) 
14:48:29.981 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':flywayMigrate' 
14:48:29.981 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :flywayMigrate FAILED 
14:48:29.981 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :flywayMigrate (Thread[main,5,main]) completed. Took 1.87 secs. 
14:48:29.981 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[main,5,main]] finished, busy: 2.774 secs, idle: 0.016 secs 
14:48:29.997 [LIFECYCLE] [org.gradle.BuildResultLogger] 
14:48:29.997 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED 
+0

您是否看到与常规protgresql jdbc驱动程序相同的行为? –

+0

使用普通的postgres jdbc驱动程序,它无法与Redshift数据库建立jdbc连接。 –

回答

0

我已经注意到这种情况发生红移/迁徙路线如果架构或表名称中包含混合大小写字符。

尝试配置一个全小写的元数据表名称,例如test_schema.db_schema_ver

相关问题