title: Scala Slick Create Table in Database
body: <p>I am building a ScalaFX app and want to add Slick as my database framework. I am very new to it and am trying to just configure my app with Slick. I'm following the online tutorials step by step. However, when I execute db.run() my tables are never created. I have tried running plain sql query and that works so it's not that it's not connecting. It runs just fine and just returns "Coffees: " Here is my code. Thanks in advance!</p>
  
  <pre><code>import scala.concurrent.{Future, Await}
  import scala.concurrent.ExecutionContext.Implicits.global
  import scala.concurrent.duration.Duration
  import slick.backend.DatabasePublisher
  import slick.driver.MySQLDriver.api._
  import scala.slick.jdbc.{StaticQuery =&gt; Q}
  import scala.concurrent.{Future, Await}
  // The main application
  object CustomerQueries extends App {
    val db = Database.forURL("jdbc:mysql://localhost:3306/business", driver="com.mysql.jdbc.Driver",
      user="pslagle12", password="pfSlagle12")
      val coffees = TableQuery[Coffees]
    val suppliers = TableQuery[Suppliers]
    //Q.updateNA("CREATE TABLE `company_name`").execute
        val customers = TableQuery[Customers]
    db.withSession {implicit session =&gt;
      val setup = DBIO.seq(
        (suppliers.schema ++ coffees.schema).create,
  suppliers += (101, "Acme, Inc.",      "99 Market Street", "Groundsville", "CA", "95199"),
        suppliers += ( 49, "Superior Coffee", "1 Party Place",    "Mendocino",    "CA", "95460"),
        suppliers += (150, "The High Ground", "100 Coffee Lane",  "Meadows",      "CA", "93966"),
        // Equivalent SQL code:
        // insert into SUPPLIERS(SUP_ID, SUP_NAME, STREET, CITY, STATE, ZIP) values (?,?,?,?,?,?)
        coffees ++= Seq(
          ("Colombian",         101, 7.99, 0, 0),
          ("French_Roast",       49, 8.99, 0, 0),
          ("Espresso",          150, 9.99, 0, 0),
          ("Colombian_Decaf",   101, 8.99, 0, 0),
          ("French_Roast_Decaf", 49, 9.99, 0, 0)
              )
      )
      val setupFuture = db.run(setup)
      // Read all coffees and print them to the console
      println("Coffees:")
      db.run(coffees.result).map(_.foreach {
        case (name, supID, price, sales, total) =&gt;
          println("  " + name + "\t" + supID + "\t" + price + "\t" + sales + "\t" + total)
      })
      // Equivalent SQL code:
      // select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES
  
    }
  class Suppliers(tag: Tag) extends Table[(Int, String, String, String, String, String)](tag, "SUPPLIERS") {
      def id = column[Int]("SUP_ID", O.PrimaryKey) // This is the primary key column
      def name = column[String]("SUP_NAME")
      def street = column[String]("STREET")
      def city = column[String]("CITY")
      def state = column[String]("STATE")
      def zip = column[String]("ZIP")
      // Every table needs a * projection with the same type as the table's type parameter
      def * = (id, name, street, city, state, zip)
    }
  
  
    // Definition of the COFFEES table
    class Coffees(tag: Tag) extends Table[(String, Int, Double, Int, Int)](tag, "COFFEES") {
      def name = column[String]("COF_NAME", O.PrimaryKey)
      def supID = column[Int]("SUP_ID")
      def price = column[Double]("PRICE")
      def sales = column[Int]("SALES")
      def total = column[Int]("TOTAL")
  
  def * = (name, supID, price, sales, total)
      // A reified foreign key relation that can be navigated to create a join
      def supplier = foreignKey("SUP_FK", supID, suppliers)(_.id)
    }
  
  }
  </code></pre>