github.com/scraniel/migrate@v0.0.0-20230320185700-339088f36cee/database/ql/ql_test.go (about) 1 package ql 2 3 import ( 4 "database/sql" 5 "fmt" 6 "path/filepath" 7 "testing" 8 9 "github.com/golang-migrate/migrate/v4" 10 dt "github.com/golang-migrate/migrate/v4/database/testing" 11 _ "github.com/golang-migrate/migrate/v4/source/file" 12 _ "modernc.org/ql/driver" 13 ) 14 15 func Test(t *testing.T) { 16 dir := t.TempDir() 17 t.Logf("DB path : %s\n", filepath.Join(dir, "ql.db")) 18 p := &Ql{} 19 addr := fmt.Sprintf("ql://%s", filepath.Join(dir, "ql.db")) 20 d, err := p.Open(addr) 21 if err != nil { 22 t.Fatal(err) 23 } 24 25 db, err := sql.Open("ql", filepath.Join(dir, "ql.db")) 26 if err != nil { 27 return 28 } 29 defer func() { 30 if err := db.Close(); err != nil { 31 return 32 } 33 }() 34 dt.Test(t, d, []byte("CREATE TABLE t (Qty int, Name string);")) 35 } 36 37 func TestMigrate(t *testing.T) { 38 dir := t.TempDir() 39 t.Logf("DB path : %s\n", filepath.Join(dir, "ql.db")) 40 41 db, err := sql.Open("ql", filepath.Join(dir, "ql.db")) 42 if err != nil { 43 return 44 } 45 defer func() { 46 if err := db.Close(); err != nil { 47 return 48 } 49 }() 50 51 driver, err := WithInstance(db, &Config{}) 52 if err != nil { 53 t.Fatal(err) 54 } 55 56 m, err := migrate.NewWithDatabaseInstance( 57 "file://./examples/migrations", 58 "ql", driver) 59 if err != nil { 60 t.Fatal(err) 61 } 62 dt.TestMigrate(t, m) 63 }