gomigrate

Golang 中的 SQL 数据库迁移工具包。「A SQL database migration toolkit in Golang」

  • Owner: DavidHuie/gomigrate
  • Platform: Linux, Mac, Windows
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

gomigrate

Build Status

A SQL database migration toolkit in Golang.

Supported databases

  • PostgreSQL
  • MariaDB
  • MySQL
  • Sqlite3

Usage

First import the package:

import "github.com/DavidHuie/gomigrate"

Given a database/sql database connection to a PostgreSQL database, db,
and a directory to migration files, create a migrator:

migrator, _ := gomigrate.NewMigrator(db, gomigrate.Postgres{}, "./migrations")

You may also specify a specific logger to use, such as logrus:

migrator, _ := gomigrate.NewMigratorWithLogger(db, gomigrate.Postgres{}, "./migrations", logrus.New())

To migrate the database, run:

err := migrator.Migrate()

To rollback the last migration, run:

err := migrator.Rollback()

Migration files

Migration files need to follow a standard format and must be present
in the same directory. Given "up" and "down" steps for a migration,
create a file for each by following this template:

{{ id }}_{{ name }}_{{ "up" or "down" }}.sql

For a given migration, the id and name fields must be the same.
The id field is an integer that corresponds to the order in which
the migration should run relative to the other migrations.

id should not be 0 as that value is used for internal validations.

Example

If I'm trying to add a "users" table to the database, I would create
the following two files:

1_add_users_table_up.sql

CREATE TABLE users();

1_add_users_table_down.sql

DROP TABLE users;

Copyright (c) 2014 David Huie. See LICENSE.txt for further details.

Main metrics

Overview
Name With OwnerDavidHuie/gomigrate
Primary LanguageGo
Program languageGo (Language Count: 3)
PlatformLinux, Mac, Windows
License:MIT License
所有者活动
Created At2014-07-12 23:25:00
Pushed At2019-08-26 18:27:20
Last Commit At2019-08-26 11:27:18
Release Count0
用户参与
Stargazers Count161
Watchers Count6
Fork Count27
Commits Count78
Has Issues Enabled
Issues Count14
Issue Open Count8
Pull Requests Count10
Pull Requests Open Count1
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private