我正在使用 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