Skip to content

matiastoro/playSlickModelGenerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Running from SBT

To run the generator from sbt:

run [FILENAME] [PARENT_FOLDER]

Output

The generated code is generated into the current folder, if no folder is indicated. For example, the following yml file:

pregunta_habilidad_cognitiva:
  id:                                 ~
  pregunta_id:                        { type: integer, foreignTable: pregunta, foreignReference: id,  onDelete: cascade }
  habilidad_cognitiva_id:             { type: integer, foreignTable: habilidad_cognitiva_id, foreignReference: id,  onDelete: cascade }

pregunta_curso:
  id:                                 ~
  pregunta_id:                        { type: integer, foreignTable: pregunta, foreignReference: id,  onDelete: cascade }
  curso_id:                           { type: integer, foreignTable: curso, foreignReference: id,  onDelete: cascade }

will generate a file for each table. All classes from a table are recommended to reside in a different file:

package models
import play.api.db.slick.Config.driver.simple._
import play.api.db._
import play.api.Play.current
/*==============ADD YOUR ADDITIONAL IMPORTS FROM HERE==============*/

/*=========================TO HERE=========================*/
case class PreguntaCurso(id: Option[Long],
                         preguntaId: Long,
                         cursoId: Long){
/*==============ADD YOUR PreguntaCurso CODE FROM HERE==============*/

/*=========================TO HERE=========================*/
}



class PreguntaCursoMapping(tag: Tag) extends Table[PreguntaCurso](tag, "pregunta_curso") {
  def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
  def preguntaId = column[Long]("pregunta_id")
  def cursoId = column[Long]("curso_id")

  def * = (id.?, preguntaId, cursoId).shaped <> (PreguntaCurso.tupled, PreguntaCurso.unapply)
}

object PreguntaCursoQuery extends DatabaseClient[PreguntaCurso] {
  type DBTable = PreguntaCursoMapping

  private[models] val all = database.withSession { implicit db: Session =>
    TableQuery[DBTable]
/*==============ADD YOUR PreguntaCursoQuery CODE FROM HERE==============*/

/*=========================TO HERE=========================*/
  }
}
/*==============ADD YOUR ADDITIONAL CLASSES FROM HERE==============*/

/*=========================TO HERE=========================*/

package models
import play.api.db.slick.Config.driver.simple._
import play.api.db._
import play.api.Play.current
/*==============ADD YOUR ADDITIONAL IMPORTS FROM HERE==============*/

/*=========================TO HERE=========================*/
case class PreguntaHabilidadCognitiva(id: Option[Long],
                                      preguntaId: Long,
                                      habilidadCognitivaId: Long){
/*==============ADD YOUR PreguntaHabilidadCognitiva CODE FROM HERE==============*/

/*=========================TO HERE=========================*/
}



class PreguntaHabilidadCognitivaMapping(tag: Tag) extends Table[PreguntaHabilidadCognitiva](tag, "pregunta_habilidad_cognitiva") {
  def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
  def preguntaId = column[Long]("pregunta_id")
  def habilidadCognitivaId = column[Long]("habilidad_cognitiva_id")

  def * = (id.?, preguntaId, habilidadCognitivaId).shaped <> (PreguntaHabilidadCognitiva.tupled, PreguntaHabilidadCognitiva.unapply)
}

object PreguntaHabilidadCognitivaQuery extends DatabaseClient[PreguntaHabilidadCognitiva] {
  type DBTable = PreguntaHabilidadCognitivaMapping

  private[models] val all = database.withSession { implicit db: Session =>
    TableQuery[DBTable]
/*==============ADD YOUR PreguntaHabilidadCognitivaQuery CODE FROM HERE==============*/

/*=========================TO HERE=========================*/
  }
}
/*==============ADD YOUR ADDITIONAL CLASSES FROM HERE==============*/

/*=========================TO HERE=========================*/

About

Model generator for play and slick from a yaml file.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages