5

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

4

1 回答 1

4

现在,创建模式支持是全有或全无。如果所有模式都缺失,它们都将被创建,否则将不创建任何模式。

于 2013-04-20T09:48:02.967 回答