我创建了一个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之间有区别吗?