Я использую flyway для управления базой данных с несколькими схемами в mysql, и я настроил flyway с помощью Maven. Я указал базу данных под названием «метаданные» первой в теге <schemas>
, поэтому 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'
Если я create database metadata
, тогда все пойдет гладко. На самом деле я очень наслаждаюсь пролетом. Если не запускать какой-то sql вручную, есть ли способ заставить flyway создать эту базу данных? Это просто ошибка?
TIA