diff options
| author | Felix Hanley <felix@userspace.com.au> | 2021-02-05 08:21:56 +0000 |
|---|---|---|
| committer | Felix Hanley <felix@userspace.com.au> | 2021-02-05 08:21:56 +0000 |
| commit | 771c6228c3417d22354511752212431c58b25172 (patch) | |
| tree | 768c4d3b08ce257d143d48688d29c601606b7df6 /example_test.go | |
| parent | 31dd5492a34ad7ca1d86286af67c816859762260 (diff) | |
| download | migrate-771c6228c3417d22354511752212431c58b25172.tar.gz migrate-771c6228c3417d22354511752212431c58b25172.tar.bz2 | |
Add examples
Diffstat (limited to 'example_test.go')
| -rw-r--r-- | example_test.go | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/example_test.go b/example_test.go new file mode 100644 index 0000000..c381a8b --- /dev/null +++ b/example_test.go @@ -0,0 +1,90 @@ +package migrate_test + +import ( + "database/sql" + "embed" + "fmt" + + "src.userspace.com.au/go-migrate" +) + +func ExampleNewFileMigrator() { + db, err := sql.Open("sqlite3", "file:test?mode=memory&cache=shared") + if err != nil { + fmt.Printf("error: %s\n", err) + } + defer db.Close() + + // Relative path to migration files + migrator, err := migrate.NewFileMigrator(db, "file://testdata/") + if err != nil { + fmt.Printf("error: %s\n", err) + } + + // Migrate all the way + err = migrator.Migrate() + if err != nil { + fmt.Printf("error: %s\n", err) + } + + v, err := migrator.Version() + fmt.Printf("database at version %d\n", v) + // Output: database at version 2 +} + +func ExampleNewFSMigrator() { + //go:embed testdata/*.sql + var migrations embed.FS + + db, err := sql.Open("sqlite3", "file:test?mode=memory&cache=shared") + if err != nil { + fmt.Printf("error: %s\n", err) + } + defer db.Close() + + // Relative path to migration files + migrator, err := migrate.NewFSMigrator(db, migrations) + if err != nil { + fmt.Printf("error: %s\n", err) + } + + // Migrate all the way + err = migrator.Migrate() + if err != nil { + fmt.Printf("error: %s\n", err) + } + + v, err := migrator.Version() + fmt.Printf("database at version %d\n", v) + // Output: database at version 2 +} + +func ExampleNewStringMigrator() { + + migrations := []string{ + "create table if not exists test1 (pk bigint not null primary key);", + "insert into test1 (pk) values (1)", + } + + db, err := sql.Open("sqlite3", "file:test?mode=memory&cache=shared") + if err != nil { + fmt.Printf("error: %s\n", err) + } + defer db.Close() + + // Relative path to migration files + migrator, err := migrate.NewStringMigrator(db, migrations) + if err != nil { + fmt.Printf("error: %s\n", err) + } + + // Migrate all the way + err = migrator.Migrate() + if err != nil { + fmt.Printf("error: %s\n", err) + } + + v, err := migrator.Version() + fmt.Printf("database at version %d\n", v) + // Output: database at version 2 +} |
