最近在学Slick,发现在Mysql下创建的表,不能指定数据库Engine,对源码研究了一下,发现经过修改可以达到所需要的目的。
代码如下,然后在Entity定义中直接使用该driver即可。
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 {}
时间: 2024-11-04 06:22:59