- Notifications
You must be signed in to change notification settings - Fork32
Type-safe data migration tool for Slick, Git and beyond.
License
lastland/scala-forklift
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Scala-Forklift helps manage and apply database migrations for your Scala project.
Write your migrations in plain SQL:
MyMigrations.migrations=MyMigrations.migrations:+SqlMigration(1)(List(sqlu"""create table "users" ("id" INTEGER NOT NULL PRIMARY KEY,"first" VARCHAR NOT NULL,"last" VARCHAR NOT NULL)"""))
Or type-safe Slick queries:
MyMigrations.migrations=MyMigrations.migrations:+DBIOMigration(2)(DBIO.seq(Users++=Seq(UsersRow(1,"Chris","Vogt"),UsersRow(2,"Yao","Li") )))
Or useslick-migration-api:
MyMigrations.migrations=MyMigrations.migrations:+APIMigration(3)(TableMigration(Users). renameColumn(_.first,"firstname"). renameColumn(_.last,"lastname"))
(Note:APIMigration
is not supported in versions prior tov0.2.3
)
Don't worry about keeping the Scala code and your database schema consistent. Our source code generator will have it generated for you.
Key Features:
- Supports for type-safe database migration withSlick andslick-migration-api.
- A source code generator to generate and manage Scala models from your database schemas.
- A tool to help you manage your dev db with git, with supports for branching and merging.
- High customizability.
Scala-Forklift supports both Slick 3.1 and Slick 3.2. The latest versions of Scala-Forklift are given below:
Scala Version | Slick Version | SBT dependency |
---|---|---|
2.11.x | 3.1.x | libraryDependencies += "com.liyaos" %% "scala-forklift-slick" % "0.2.3" |
2.12.x, 2.11.x | 3.2.x | libraryDependencies += "com.liyaos" %% "scala-forklift-slick" % "0.3.1" |
2.13.x, 2.12.x | 3.3.x | libraryDependencies += "com.liyaos" %% "scala-forklift-slick" % "0.3.2" |
For tutorial and example code, please checkexample.
Here is also a wonderfultutorial written by Andreas Burkard and Julian Tragé.
You can use our start template on GitHub to quickly start a project with Scala-Forklift:
git clone https://github.com/lastland/scala-forklift-start-template.git
- The
reset
command may not correctly handle database schemas with foreign keys.
About
Type-safe data migration tool for Slick, Git and beyond.