I'm using flyway to manage a multi-schema database in mysql and I've configured flyway using Maven. I have listed a database called 'metadata' as the first in the <schemas>
tag so flyway will put the schema_version
table here. When I run mvn flyway:migrate
I'm expecting this table and the metadata
database to be created. Flyway 2.1.1 tries to create the table, but does not create the database first so it fails.
[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'
I thought mvn flyway:init
might create the schemas, but that fails with a different but obviously related error.
[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'
If I create database metadata
then things proceed smoothly. I'm quite enjoying flyway in fact. Short of running some sql manually, is there a way to make flyway create this database? Is this simply a bug?
TIA