SLICK3.0 MySQL InnoDB Driver

最近在学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 {}


你可能感兴趣的:(SLICK3.0 MySQL InnoDB Driver)