Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 95e701d

Browse files
committed
sqlite3: fix wrong schema table usage
fixes: golang-migrate#165
1 parent f6d624c commit 95e701d

File tree

2 files changed

+58
-10
lines changed

2 files changed

+58
-10
lines changed

database/sqlite3/sqlite3.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ package sqlite3
33
import (
44
"database/sql"
55
"fmt"
6-
"github.com/golang-migrate/migrate/v4"
7-
"github.com/golang-migrate/migrate/v4/database"
8-
_ "github.com/mattn/go-sqlite3"
96
"io"
107
"io/ioutil"
118
nurl "net/url"
129
"strings"
10+
11+
"github.com/golang-migrate/migrate/v4"
12+
"github.com/golang-migrate/migrate/v4/database"
13+
_ "github.com/mattn/go-sqlite3"
1314
)
1415

1516
func init() {
@@ -62,7 +63,7 @@ func (m *Sqlite) ensureVersionTable() error {
6263
query := fmt.Sprintf(`
6364
CREATE TABLE IF NOT EXISTS %s (version uint64,dirty bool);
6465
CREATE UNIQUE INDEX IF NOT EXISTS version_unique ON %s (version);
65-
`, DefaultMigrationsTable, DefaultMigrationsTable)
66+
`, m.config.MigrationsTable, m.config.MigrationsTable)
6667

6768
if _, err := m.db.Exec(query); err != nil {
6869
return err

database/sqlite3/sqlite3_test.go

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ package sqlite3
33
import (
44
"database/sql"
55
"fmt"
6-
"github.com/golang-migrate/migrate/v4"
7-
dt "github.com/golang-migrate/migrate/v4/database/testing"
8-
_ "github.com/golang-migrate/migrate/v4/source/file"
9-
_ "github.com/mattn/go-sqlite3"
106
"io/ioutil"
117
"os"
128
"path/filepath"
139
"testing"
10+
11+
"github.com/golang-migrate/migrate/v4"
12+
dt "github.com/golang-migrate/migrate/v4/database/testing"
13+
_ "github.com/golang-migrate/migrate/v4/source/file"
14+
_ "github.com/mattn/go-sqlite3"
1415
)
1516

1617
func Test(t *testing.T) {
@@ -21,7 +22,7 @@ func Test(t *testing.T) {
2122
defer func() {
2223
os.RemoveAll(dir)
2324
}()
24-
fmt.Printf("DB path : %s\n", filepath.Join(dir, "sqlite3.db"))
25+
t.Logf("DB path : %s\n", filepath.Join(dir, "sqlite3.db"))
2526
p := &Sqlite{}
2627
addr := fmt.Sprintf("sqlite3://%s", filepath.Join(dir, "sqlite3.db"))
2728
d, err := p.Open(addr)
@@ -53,9 +54,55 @@ func Test(t *testing.T) {
5354
if err != nil {
5455
t.Fatalf("%v", err)
5556
}
56-
fmt.Println("UP")
57+
t.Log("UP")
5758
err = m.Up()
5859
if err != nil {
5960
t.Fatalf("%v", err)
6061
}
6162
}
63+
64+
func TestMigrationTable(t *testing.T) {
65+
dir, err := ioutil.TempDir("", "sqlite3-driver-test-migration-table")
66+
if err != nil {
67+
return
68+
}
69+
defer func() {
70+
os.RemoveAll(dir)
71+
}()
72+
73+
t.Logf("DB path : %s\n", filepath.Join(dir, "sqlite3.db"))
74+
75+
db, err := sql.Open("sqlite3", filepath.Join(dir, "sqlite3.db"))
76+
if err != nil {
77+
return
78+
}
79+
defer func() {
80+
if err := db.Close(); err != nil {
81+
return
82+
}
83+
}()
84+
85+
config := &Config{
86+
MigrationsTable: "my_migration_table",
87+
}
88+
driver, err := WithInstance(db, config)
89+
if err != nil {
90+
t.Fatalf("%v", err)
91+
}
92+
m, err := migrate.NewWithDatabaseInstance(
93+
"file://./migration",
94+
"ql", driver)
95+
if err != nil {
96+
t.Fatalf("%v", err)
97+
}
98+
t.Log("UP")
99+
err = m.Up()
100+
if err != nil {
101+
t.Fatalf("%v", err)
102+
}
103+
104+
_, err = db.Query(fmt.Sprintf("SELECT * FROM %s", config.MigrationsTable))
105+
if err != nil {
106+
t.Fatalf("%v", err)
107+
}
108+
}

0 commit comments

Comments
 (0)