当前位置: 首页 > 知识库问答 >
问题:

Flyway:init不创建模式数据库

马冯浩
2023-03-14

我使用flyway在mysql中管理多模式数据库,并使用Maven对flyway进行了配置。我在 标记中第一个列出了一个名为“metadata”的数据库,因此flyway将在这里放置schema_version表。当我运行MVN Flyway:Migrate时,我希望创建这个表和Metadata数据库。Flyway 2.1.1尝试创建表,但没有首先创建数据库,因此失败。

[DEBUG] Schemas: metadata,temp,OTHER_DBS_REDACTED
[DEBUG] Schema `temp` already exists. Skipping schema creation.
[DEBUG] Database: MySQL 5.6  
[ERROR] com.googlecode.flyway.core.api.FlywayException: Error setting current sc
hema to `metadata`
[ERROR] Caused by com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unk
nown database 'metadata'

我认为MVN Flyway:init可能会创建模式,但失败了,出现了一个不同但明显相关的错误。

[INFO] --- flyway-maven-plugin:2.1.1:init (default-cli) @ database ---
[INFO] Creating Metadata table: `metadata`.`schema_version`
[ERROR] com.googlecode.flyway.core.api.FlywayException: Error executing statement at line 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,
    `checksum` INT,
    `installed_by` VARCHAR(100) NOT NULL,
    `installed_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `execution_time` INT NOT NULL,
    `success` BOOL NOT NULL
) ENGINE=InnoDB
[ERROR] Caused by com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'metadata'

TIA

共有1个答案

满伟彦
2023-03-14

现在,创建模式支持是一个要么全有要么全无的问题。如果缺少所有架构,将创建所有架构,否则将不创建架构。

 类似资料:
  • 问题内容: 对于一个宠物项目,数据库进入了顶峰, 元数据 达到了顶峰,我很难理解该命令与MySQL命令之间的区别(如果有)。 有什么区别吗?如果不是这样,这是关系数据库行为的一种相当典型的模式(我听说过,对于其他数据库(例如Oracle),模式存在于数据库中,而不是与数据库处于同一级别)。 谢谢! 问题答案: MySQL的文档说: CREATE DATABASE创建具有给定名称的数据库。要使用此语

  • 在简单的示例中你可以使用 java.lang 和 java.util 包中的类, 还有用户自定义的Java Bean来构建数据对象: 使用 java.lang.String 来构建字符串。 使用 java.lang.Number 来派生数字类型。 使用 java.lang.Boolean 来构建布尔值。 使用 java.util.List 或Java数组来构建序列。 使用 java.util.Ma

  • 我正在尝试创建一个mysql数据库/模式,如果它还不存在的话。 以下是我尝试过的: docker编写。yml公司 创建数据库 它不起作用。如果架构不存在,使用docker/docker compose创建架构的最佳方式是什么?

  • 您好,我尝试在测试前创建数据库schem,但它失败了:/这是我的脚本: 并且当我尝试使用squirell和嵌入式Derby运行该脚本时,它起作用了。 首先,我尝试在类测试之前使用注释@createSchema(“scripts/import.sql”): 接下来尝试使用@applyscriptbefore 第二次我尝试使用脚本: property name=“ScriptStoExecuteBef

  • 创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。 创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建型模式隐藏了类的实例的

  • 我希望在相同的主机上创建,但使用不同的模式。我想在测试模式上创建特定于应用程序的表,在batchmetadata模式上创建元数据表。 错误: 我浏览了如下链接:不同模式中的Spring-batch元数据表和不同模式中的Spring批处理表,但code仍然在测试模式上生成。 Application.Properties 新错误:

  • 我有一个小数据集,它将是Spark工作的结果。为了方便起见,我正在考虑在作业结束时将此数据集转换为数据帧,但很难正确定义模式。问题是下面的最后一个字段(

  • 一、前言 创建型模式 创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。 创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建