A golang library for updating your database schema
Go to file
2020-02-21 15:24:59 +01:00
.gitignore Initial commit 2016-10-21 21:19:33 +02:00
LICENSE Initial commit 2016-10-21 21:19:33 +02:00
migrate.go Support non-PostgreSQL databases 2020-02-21 15:24:59 +01:00
query.go Support non-PostgreSQL databases 2020-02-21 15:24:59 +01:00
README.md Fixed issues in README and documentation 2016-10-21 22:48:11 +02:00
util.go Support non-PostgreSQL databases 2020-02-21 15:24:59 +01:00

Go database migrate

This is a simple database migration library for Go. This library is intended to be used with go-bindata.

We recommended using a go generate command to update the go-bindata file.

Installation

You can install this library with go get

go get git.fuyu.moe/Fuyu/migrate

Example

files/0001.sql:

CREATE TABLE tests (
	Name varchar(100) NOT NULL
);

INSERT INTO tests VALUES ('migration test');

Run go-bindata --prefix files files

Optionally you can add the flags -nomemcopy and -nometadata

main.go:

package main

import (
	"database/sql"
	"fmt"

	"git.fuyu.moe/Fuyu/migrate"
	_ "github.com/lib/pq"
)

func main() {
	db, err := sql.Open(`postgres`, `host=/run/postgresql dbname=testdb sslmode=disable`)
	if err != nil {
		fmt.Println(`Failed to connect to database. Message:`, err)
		return
	}
	err = migrate.Migrate(db, 1, migrate.Options{Schema: `testschema`}, Asset)
	if err != nil {
		fmt.Println(`The migration failed! Message:`, err)
		return
	}

	fmt.Println(`The database migration/update was successful`)
}

File names:

The names of your migration files should look like this:

0001.sql
0002.sql
...
0010.sql
...
0325.sql