github.com/fr-nvriep/migrate/v4@v4.3.2/database/ql/ql_test.go (about) 1 package ql 2 3 import ( 4 "database/sql" 5 "fmt" 6 "io/ioutil" 7 "os" 8 "path/filepath" 9 "testing" 10 11 _ "github.com/cznic/ql/driver" 12 "github.com/fr-nvriep/migrate/v4" 13 dt "github.com/fr-nvriep/migrate/v4/database/testing" 14 _ "github.com/fr-nvriep/migrate/v4/source/file" 15 ) 16 17 func Test(t *testing.T) { 18 dir, err := ioutil.TempDir("", "ql-driver-test") 19 if err != nil { 20 return 21 } 22 defer func() { 23 if err := os.RemoveAll(dir); err != nil { 24 t.Fatal(err) 25 } 26 }() 27 t.Logf("DB path : %s\n", filepath.Join(dir, "ql.db")) 28 p := &Ql{} 29 addr := fmt.Sprintf("ql://%s", filepath.Join(dir, "ql.db")) 30 d, err := p.Open(addr) 31 if err != nil { 32 t.Fatal(err) 33 } 34 35 db, err := sql.Open("ql", filepath.Join(dir, "ql.db")) 36 if err != nil { 37 return 38 } 39 defer func() { 40 if err := db.Close(); err != nil { 41 return 42 } 43 }() 44 dt.Test(t, d, []byte("CREATE TABLE t (Qty int, Name string);")) 45 } 46 47 func TestMigrate(t *testing.T) { 48 dir, err := ioutil.TempDir("", "ql-driver-test") 49 if err != nil { 50 return 51 } 52 defer func() { 53 if err := os.RemoveAll(dir); err != nil { 54 t.Error(err) 55 } 56 }() 57 t.Logf("DB path : %s\n", filepath.Join(dir, "ql.db")) 58 59 db, err := sql.Open("ql", filepath.Join(dir, "ql.db")) 60 if err != nil { 61 return 62 } 63 defer func() { 64 if err := db.Close(); err != nil { 65 return 66 } 67 }() 68 69 driver, err := WithInstance(db, &Config{}) 70 if err != nil { 71 t.Fatal(err) 72 } 73 74 m, err := migrate.NewWithDatabaseInstance( 75 "file://./examples/migrations", 76 "ql", driver) 77 if err != nil { 78 t.Fatal(err) 79 } 80 dt.TestMigrate(t, m, []byte("CREATE TABLE t (Qty int, Name string);")) 81 }