A library for updating your database schema
Nise Void fdc83faba0 Restore search_path after finishing migrations 2 months ago
.gitignore Initial commit 1 year ago
LICENSE Initial commit 1 year ago
README.md Fixed issues in README and documentation 1 year ago
migrate.go Restore search_path after finishing migrations 2 months ago

README.md

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