@@ -25,12 +25,13 @@ type fixturesLoader struct {
25
25
func (f * fixturesLoader ) prepareFieldValue (v any ) any {
26
26
if s , ok := v .(string ); ok {
27
27
if strings .HasPrefix (s , "::HEX::" ) {
28
- b , _ := hex .DecodeString (s [8 :])
28
+ b , _ := hex .DecodeString (s [7 :])
29
29
return b
30
30
}
31
31
}
32
32
return v
33
33
}
34
+
34
35
func (f * fixturesLoader ) loadFixtures (file string ) error {
35
36
data , err := os .ReadFile (file )
36
37
if err != nil {
@@ -49,12 +50,19 @@ func (f *fixturesLoader) loadFixtures(file string) error {
49
50
return err
50
51
}
51
52
53
+ sess := f .engine .NewSession ()
54
+ err = sess .Begin ()
55
+ if err != nil {
56
+ return err
57
+ }
58
+ defer sess .Close ()
59
+
52
60
switch f .engine .Dialect ().URI ().DBType {
53
61
case schemas .MSSQL :
54
- _ , _ = f . engine . Exec ("SET IDENTITY_INSERT [%s] ON" , tableName )
55
- defer func () {
56
- _ , _ = f . engine . Exec ( "SET IDENTITY_INSERT [%s] OFF" , tableName )
57
- }()
62
+ _ , err = sess . Exec (fmt . Sprintf ( "SET IDENTITY_INSERT %s ON" , tableNameQuoted ) )
63
+ if err != nil {
64
+ return err
65
+ }
58
66
}
59
67
60
68
var sqlBuf []byte
@@ -72,14 +80,14 @@ func (f *fixturesLoader) loadFixtures(file string) error {
72
80
sqlBuf = append (sqlBuf , "?," ... )
73
81
}
74
82
sqlBuf [len (sqlBuf )- 1 ] = ')'
75
- _ , err = f . engine .Exec (append ([]any {util .BytesToReadOnlyString (sqlBuf )}, sqlArguments ... )... )
83
+ _ , err = sess .Exec (append ([]any {util .BytesToReadOnlyString (sqlBuf )}, sqlArguments ... )... )
76
84
if err != nil {
77
85
return err
78
86
}
79
87
sqlBuf = sqlBuf [:0 ]
80
88
sqlArguments = sqlArguments [:0 ]
81
89
}
82
- return nil
90
+ return sess . Commit ()
83
91
}
84
92
85
93
func (f * fixturesLoader ) Load () error {
0 commit comments