最近在学Slick,发现在Mysql下创建的表,不能指定数据库Engine,对源码研究了一下,发现经过修改可以达到所需要的目的。
代码如下,然后在Entity定义中直接使用该driver即可。www.bnmzb.com
- package com.activator.derbysoft
-
- import slick.driver.MySQLDriver
-
-
- trait MysqlInnoDBDriver extends MySQLDriver {
- override def createTableDDLBuilder(table: Table[_]): TableDDLBuilder = new InnodbTableDDLBuilder(table)
-
- class InnodbTableDDLBuilder(table: Table[_]) extends super.TableDDLBuilder(table) {
- override protected def createTable = {
- super.createTable + " ENGINE=INNODB DEFUALT CHARSET 'UTF8'"
- }
- }
-
- }
-
- object MysqlInnoDBDriver extends MysqlInnoDBDriver {}
复制代码 www.bnmzb.com