File tree 3 files changed +33
-11
lines changed
3 files changed +33
-11
lines changed Original file line number Diff line number Diff line change @@ -3,11 +3,12 @@ package manager
3
3
import (
4
4
"database/sql"
5
5
"errors"
6
+ "reflect"
7
+
6
8
"github.com/jmoiron/sqlx"
7
9
"github.com/plopezm/goedb/config"
8
10
"github.com/plopezm/goedb/dialect"
9
11
"github.com/plopezm/goedb/metadata"
10
- "reflect"
11
12
)
12
13
13
14
// GoedbSQLDriver constains the database connection
@@ -66,12 +67,12 @@ func (sqld *GoedbSQLDriver) GetDBConnection() *sqlx.DB {
66
67
67
68
// Migrate creates the table in the database
68
69
func (sqld * GoedbSQLDriver ) Migrate (i interface {}, autoCreate bool , dropIfExists bool ) (err error ) {
70
+ if dropIfExists {
71
+ sqld .DropTable (i )
72
+ }
69
73
table := metadata .ParseModel (i )
70
74
metadata .Models [table .Name ] = table
71
75
if autoCreate {
72
- if dropIfExists {
73
- sqld .DropTable (i )
74
- }
75
76
sqltab := dialect .GetSQLCreate (sqld .Dialect , table )
76
77
_ , err = sqld .db .Exec (sqltab )
77
78
}
Original file line number Diff line number Diff line change 1
1
package tests
2
2
3
3
import (
4
+ "testing"
5
+
4
6
_ "github.com/lib/pq"
5
7
_ "github.com/mattn/go-sqlite3"
6
8
"github.com/plopezm/goedb"
7
9
"github.com/stretchr/testify/assert"
8
- "testing"
9
10
)
10
11
11
12
type TestTroop struct {
@@ -31,14 +32,34 @@ func Test_Goedb_Migrate(t *testing.T) {
31
32
assert .NotNil (t , em )
32
33
33
34
err = em .Migrate (& TestTroop {}, true , true )
34
- if err != nil {
35
- t .Error (err )
36
- }
35
+ assert .Nil (t , err )
37
36
38
37
err = em .Migrate (& TestSoldier {}, true , true )
39
- if err != nil {
40
- t .Error (err )
41
- }
38
+ assert .Nil (t , err )
39
+ }
40
+
41
+ func Test_Goedb_Migrate_Recreate (t * testing.T ) {
42
+ em , err := goedb .GetEntityManager (persistenceUnitItComplexTest )
43
+ assert .Nil (t , err )
44
+ assert .NotNil (t , em )
45
+
46
+ err = em .Migrate (& TestTroop {}, true , false )
47
+ assert .NotNil (t , err )
48
+
49
+ err = em .Migrate (& TestSoldier {}, true , false )
50
+ assert .NotNil (t , err )
51
+ }
52
+
53
+ func Test_Goedb_Migrate_RecreateWithDrop (t * testing.T ) {
54
+ em , err := goedb .GetEntityManager (persistenceUnitItComplexTest )
55
+ assert .Nil (t , err )
56
+ assert .NotNil (t , em )
57
+
58
+ err = em .Migrate (& TestTroop {}, true , true )
59
+ assert .Nil (t , err )
60
+
61
+ err = em .Migrate (& TestSoldier {}, true , true )
62
+ assert .Nil (t , err )
42
63
}
43
64
44
65
func Test_Goedb_Model (t * testing.T ) {
You can’t perform that action at this time.
0 commit comments