我正在使用 flyway 来管理 mysql 中的多模式数据库,并且我已经使用 Maven 配置了 flyway。我已经将一个名为“元数据”的数据库列为<schemas>
标签中的第一个数据库,因此 flyway 会将schema_version
表格放在这里。当我运行时mvn flyway:migrate
,我期望创建此表和metadata
数据库。Flyway 2.1.1 尝试创建表,但没有先创建数据库,因此失败。
[调试] 架构:元数据、临时、OTHER_DBS_REDACTED [DEBUG] Schema `temp` 已经存在。跳过架构创建。 [调试] 数据库:MySQL 5.6 [错误] com.googlecode.flyway.core.api.FlywayException:设置当前 sc 时出错 hema 到“元数据” [错误] 由 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 引起:Unk 现在的数据库“元数据”
我认为mvn flyway:init
可能会创建模式,但这会失败并出现不同但明显相关的错误。
[INFO] --- flyway-maven-plugin:2.1.1:init (default-cli) @ database --- [INFO] 创建元数据表:`metadata`.`schema_version` [错误] com.googlecode.flyway.core.api.FlywayException:在第 17 行执行语句时出错:CREATE TABLE `metadata`.`schema_version`( `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, `校验和` INT, `installed_by` VARCHAR(100) NOT NULL, `installed_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `execution_time` INT NOT NULL, `成功` BOOL NOT NULL ) 引擎=InnoDB [错误] 由 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException 引起:未知数据库“元数据”
如果我create database metadata
那么事情进展顺利。事实上,我很喜欢flyway。没有手动运行一些sql,有没有办法让flyway创建这个数据库?这只是一个错误吗?
TIA