2013-04-19 14 views
3

Я использую flyway для управления базой данных с несколькими схемами в mysql, и я настроил пролет с использованием Maven. Я перечислил базу данных под названием «метаданные» в качестве первого в теге <schemas>, поэтому пролетел разместит здесь таблицу schema_version. Когда я запускаю mvn flyway:migrate, я ожидаю, что эта таблица и созданная база данных metadata. Flyway 2.1.1 пытается создать таблицу, но сначала не создает базу данных, поэтому она терпит неудачу.Flyway: init не создает базу данных схемы

 
[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 создать эту базу данных? Это просто ошибка?

ТИА

+0

Хороший вопрос, в настоящее время у меня точно такая же проблема –

ответ

3

Щас создания схемы поддержки является все или ничего вещь. Если все схемы отсутствуют, все они будут созданы, иначе никто не будет создан.

+1

Ах! Это был линчпин. Я перечислил «temp» как схему для управления, и она уже существует в БД по умолчанию. ** Удаление ** этого из списка схем позволило пролетному пути создать базы данных и таблицу schema_version. – user2300902

Смежные вопросы