我需要测试我的代码是否创建了正确的数据库语句。我知道我可以用内存中的数据库运行我的应用程序。它并不完美,但对于这个项目来说已经足够了。我的SQL包含特定于MySQL的内容。
当我运行我的测试时,它会中断包含以下内容的进化:
CREATE TABLE `Beaches` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB;
COLLATE='utf8_general_ci'如何用MySQL特有的语法解决这些问题?
发布于 2013-03-01 06:13:43
我找到了一种方法来绕过(大多数)特定于MySQL的东西(问题1)。
running(FakeApplication(additionalConfiguration =
inMemoryDatabase(options=Map("MODE" -> "MySQL")))) {
DB.withConnection { implicit c =>
SQL("""
CREATE TABLE `Beaches` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
)
/*! ENGINE=InnoDB; */
/*! COLLATE='utf8_general_ci' */
"""
).execute()
ok
}
}请注意,H2有一个MODE=MySQL,如播放文档的Working with the in-memory H2 database部分所述。
另一部分是c样式的注释,如MySQL文档的Comment Syntax部分所述。
https://stackoverflow.com/questions/15146723
复制相似问题