diff options
| author | felix <felix> | 2018-06-22 15:14:37 +0000 |
|---|---|---|
| committer | felix <felix> | 2018-06-22 15:14:37 +0000 |
| commit | f5308f149dddc90a0fcd948bb5b5cd8042611eac (patch) | |
| tree | 42af406dc34422856fa2bd2d938099a5657ebf75 /README.md | |
| parent | fb9236edbb0eff29e2cc3dc37f1e82a839141d2b (diff) | |
| download | migrate-f5308f149dddc90a0fcd948bb5b5cd8042611eac.tar.gz migrate-f5308f149dddc90a0fcd948bb5b5cd8042611eac.tar.bz2 | |
Add readme
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..f5de302 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# Go migrations + +A very simple migration library for your Go projects. + + import "github.com/felix/go-migrate" +or + import "userspace.com.au/go-migrate" + +## Features + +- Any database/sql drivers should work. See https://github.com/golang/go/wiki/SQLDrivers + +- Each migration is run in a transaction so there should be no 'dirty' state. + +- Only migrates "up". I have never used a "down" migration. + +- Enables a callback function to suit whatever logging implementation you choose. + +## Usage + + db, err := sql.Open("pgx", uri) + //db, err := sql.Open("sqlite3", uri) + if err != nil { + return err + } + defer db.Close() + + // Relative path to migration files + migrator, err := migrate.NewFileMigrator(db, "file://migrations/") + if err != nil { + return fmt.Errorf("failed to create migrator: %s", err) + } + + // Migrate all the way + err = migrator.Migrate() + if err != nil { + return fmt.Errorf("failed to migrate: %s", err) + } + + v, err := migrator.Version() + fmt.Printf("database at version %d\n", v) + |
