Skip to content


Repository files navigation

GolangCI Version Go Report Card Coverage Status Go Reference Mentioned in Awesome Go


CLI-friendly package for PostgreSQL migrations management.


Requires Go Modules enabled.

go get


Initialize the migrate with options payload where choices are:

  • DatabaseURI database connection string. In a format of postgres://user:password@host:port/database?sslmode=disable.

  • VersionNumberToApply uint value of a migration number up to which the migrations should be applied. When the requested migration number is lower than currently applied migration number it will run backward migrations, otherwise it will run forward migrations.

  • PrintVersionAndExit if true, the currently applied version number will be printed into stdout and the migrations will not be applied.

  • ForceVersionWithoutMigrations if true, the migrations will not be applied, but they will be registered as applied up to the specified version number.

  • RefreshSchema if true, public schema will be dropped and recreated before the migrations are applied. Useful for frequent testing and CI environments.


You will find the example in examples directory. The example is CLI-friendly and can be used as a base for CLI-based migrations utility.