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
您是否看到与常规protgresql jdbc驱动程序相同的行为? –
使用普通的postgres jdbc驱动程序,它无法与Redshift数据库建立jdbc连接。 –