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

Skip to content

Commit 706f231

Browse files
committed
add v1compat
1 parent 171f9a2 commit 706f231

File tree

1 file changed

+109
-14
lines changed

1 file changed

+109
-14
lines changed

migrate/v1compat.go

Lines changed: 109 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"github.com/mattes/migrate/migrate/file"
1010
)
1111

12-
var deprecatedMessage = "You are using a deprecated version of migrate, update at https://github.com/mattes/migrate"
12+
var deprecatedMessage = ""
1313

1414
func Up(pipe chan interface{}, url, migrationsPath string) {
1515
m, err := migrate.New("file://"+migrationsPath, url)
@@ -23,49 +23,144 @@ func Up(pipe chan interface{}, url, migrationsPath string) {
2323
}
2424
}
2525

26-
func UpSync(url, migrationsPath string) (err []error, ok bool) {
27-
return nil, false
26+
func UpSync(url, migrationsPath string) (errs []error, ok bool) {
27+
m, err := migrate.New("file://"+migrationsPath, url)
28+
if err != nil {
29+
return []error{err}, false
30+
}
31+
if err := m.Up(); err != nil {
32+
return []error{err}, false
33+
}
34+
return nil, true
2835
}
2936

3037
func Down(pipe chan interface{}, url, migrationsPath string) {
38+
m, err := migrate.New("file://"+migrationsPath, url)
39+
if err != nil {
40+
pipe <- err
41+
return
42+
}
43+
44+
if err := m.Down(); err != nil {
45+
pipe <- err
46+
}
3147
}
3248

33-
func DownSync(url, migrationsPath string) (err []error, ok bool) {
34-
return nil, false
49+
func DownSync(url, migrationsPath string) (errs []error, ok bool) {
50+
m, err := migrate.New("file://"+migrationsPath, url)
51+
if err != nil {
52+
return []error{err}, false
53+
}
54+
if err := m.Down(); err != nil {
55+
return []error{err}, false
56+
}
57+
return nil, true
3558
}
3659

3760
func Redo(pipe chan interface{}, url, migrationsPath string) {
61+
m, err := migrate.New("file://"+migrationsPath, url)
62+
if err != nil {
63+
pipe <- err
64+
return
65+
}
66+
67+
if err := m.Steps(-1); err != nil {
68+
pipe <- err
69+
return
70+
}
71+
72+
if err := m.Steps(1); err != nil {
73+
pipe <- err
74+
}
3875
}
3976

40-
func RedoSync(url, migrationsPath string) (err []error, ok bool) {
41-
return nil, false
77+
func RedoSync(url, migrationsPath string) (errs []error, ok bool) {
78+
m, err := migrate.New("file://"+migrationsPath, url)
79+
if err != nil {
80+
return []error{err}, false
81+
}
82+
if err := m.Steps(-1); err != nil {
83+
return []error{err}, false
84+
}
85+
if err := m.Steps(1); err != nil {
86+
return []error{err}, false
87+
}
88+
return nil, true
4289
}
4390

4491
func Reset(pipe chan interface{}, url, migrationsPath string) {
92+
m, err := migrate.New("file://"+migrationsPath, url)
93+
if err != nil {
94+
pipe <- err
95+
return
96+
}
97+
98+
if err := m.Drop(); err != nil {
99+
pipe <- err
100+
return
101+
}
102+
103+
if err := m.Up(); err != nil {
104+
pipe <- err
105+
}
45106
}
46107

47-
func ResetSync(url, migrationsPath string) (err []error, ok bool) {
48-
return nil, false
108+
func ResetSync(url, migrationsPath string) (errs []error, ok bool) {
109+
m, err := migrate.New("file://"+migrationsPath, url)
110+
if err != nil {
111+
return []error{err}, false
112+
}
113+
if err := m.Drop(); err != nil {
114+
return []error{err}, false
115+
}
116+
if err := m.Up(); err != nil {
117+
return []error{err}, false
118+
}
119+
return nil, true
49120
}
50121

51122
func Migrate(pipe chan interface{}, url, migrationsPath string, relativeN int) {
123+
m, err := migrate.New("file://"+migrationsPath, url)
124+
if err != nil {
125+
pipe <- err
126+
return
127+
}
52128

129+
if err := m.Steps(relativeN); err != nil {
130+
pipe <- err
131+
}
53132
}
54133

55-
func MigrateSync(url, migrationsPath string, relativeN int) (err []error, ok bool) {
56-
return nil, false
134+
func MigrateSync(url, migrationsPath string, relativeN int) (errs []error, ok bool) {
135+
m, err := migrate.New("file://"+migrationsPath, url)
136+
if err != nil {
137+
return []error{err}, false
138+
}
139+
if err := m.Steps(relativeN); err != nil {
140+
return []error{err}, false
141+
}
142+
return nil, true
57143
}
58144

59145
func Version(url, migrationsPath string) (version uint64, err error) {
60-
return 0, nil
146+
m, err := migrate.New("file://"+migrationsPath, url)
147+
if err != nil {
148+
return 0, err
149+
}
150+
151+
v, _, err := m.Version()
152+
if err != nil {
153+
return 0, err
154+
}
155+
return uint64(v), nil
61156
}
62157

63158
func Create(url, migrationsPath, name string) (*file.MigrationFile, error) {
64-
return nil, fmt.Errorf(deprecatedMessage)
159+
return nil, fmt.Errorf("You are using a deprecated version of migrate, update at https://github.com/mattes/migrate")
65160
}
66161

67162
func NewPipe() chan interface{} {
68-
return nil
163+
return make(chan interface{}, 0)
69164
}
70165

71166
func Graceful() {}

0 commit comments

Comments
 (0)