I think the problem is that some characters are not used, as before, in slick 3.0.0
Look here for further issues.
in your case, the problematic line will be something like this depending on what you are going to do, but this should work:
def * = (id, name, instructions, ingredients) <> ((Recipe.apply _). tupled, Recipe.unapply _)
Also you do not need import implicits
and there is a problem with the [Int] parameter: maybe this should be better:
import slick.driver.H2Driver.api._ object SlickStackOverflow extends App { } case class Recipe(id: Option[Int] = None, name: String, instructions: String, ingredients: String) object AddFixtures { class Recipes(tag: Tag) extends Table[Recipe](tag, "recipe") { def id = column[Option[Int]]("id", O.PrimaryKey, O.AutoInc) def name = column[String]("name") def instructions = column[String]("instructions") def ingredients = column[String]("ingredients") def * = (id, name, instructions, ingredients) <> ((Recipe.apply _).tupled, Recipe.unapply _) } val recipes = TableQuery[Recipes] val setup = DBIO.seq( recipes.schema.create, recipes += Recipe(None, "Chicken with Avocado", "Mix it up", "Chicken, Avocado") ) def apply() = { val db = Database.forConfig("h2mem1") try db.run(setup) finally db.close } }
Or add.? to the field id, without using the option, as we say in the comments, I think this aproach is better
package org.example import slick.driver.H2Driver.api._ object SlickStackOverflow extends App { } case class Recipe(id: Option[Int], name: String, instructions: String, ingredients: String) object AddFixtures { class Recipes(tag: Tag) extends Table[Recipe](tag, "recipe") { def id = column[Int]("id", O.PrimaryKey, O.AutoInc) def name = column[String]("name") def instructions = column[String]("instructions") def ingredients = column[String]("ingredients") def * = (id.?, name, instructions, ingredients) <> ((Recipe.apply _).tupled, Recipe.unapply _) } val recipes = TableQuery[Recipes] val setup = DBIO.seq( recipes.schema.create, recipes += Recipe(None, "Chicken with Avocado", "Mix it up", "Chicken, Avocado") ) def apply() = { val db = Database.forConfig("h2mem1") try db.run(setup) finally db.close } }