使用mysql,h2和flyway命令执行create table

时间:2015-08-26 12:37:42

标签: java mysql junit h2 flyway

我创建了一个sql脚本(使用mysqldump)来确定我的数据库的基本版本。我将此脚本与flywaydb一起使用,以完全管理数据库创建和其他迁移操作。该脚本包含几个表,其中一些表是其他表的fk。它们出现在mysqldump生成的sql脚本中的顺序如下(只有两个表出现导致下面描述的问题)

CREATE TABLE `signaling_interface` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `test_server_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `UK_sigInterfaceConstraint` (`test_server_id`),
  KEY `FK_3crdx5y8had0g1mit1k2gebt5` (`test_server_id`),
  CONSTRAINT `FK_3crdx5y8had0g1mit1k2gebt5` FOREIGN KEY (`test_server_id`) REFERENCES `test_server` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `test_server` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `UK_3754w88bn333h1dgambvwj6i8` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我想Junit测试我的迁移并在内存数据库中选择h2来做到这一点。但是当我尝试迁移时,在创建signaling_interface表时给出了一个错误,因为test_server不存在。在MySQL中执行迁移时,它不会给我这个错误。 mysql和h2之间有区别吗?

0 个答案:

没有答案