回答編集履歴
1
mainだけでなくdbパッケージの修正も追記
test
CHANGED
@@ -1,6 +1,72 @@
|
|
1
1
|
`Connect` で `defer db.Close()` しているからでは?
|
2
2
|
|
3
3
|
こんな風に `Connect` で閉じずに `main` 関数で閉じてみたらどうでしょう。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
```go
|
8
|
+
|
9
|
+
package db
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
type TestDB interface {
|
14
|
+
|
15
|
+
GetAllUsers() []interface{}
|
16
|
+
|
17
|
+
}
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
type testdb struct {
|
22
|
+
|
23
|
+
data *gorm.DB
|
24
|
+
|
25
|
+
}
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
func (d *testdb) Close() {
|
30
|
+
|
31
|
+
db.data.Close()
|
32
|
+
|
33
|
+
}
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
func Connect() *testdb{
|
38
|
+
|
39
|
+
db, err := gorm.Open("mysql", "path")
|
40
|
+
|
41
|
+
d := &testdb{
|
42
|
+
|
43
|
+
data: db,
|
44
|
+
|
45
|
+
}
|
46
|
+
|
47
|
+
if err != nil {
|
48
|
+
|
49
|
+
panic(err.Error())
|
50
|
+
|
51
|
+
}
|
52
|
+
|
53
|
+
return d
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
func (d *testdb) GetAllUsers() []model.Users{
|
60
|
+
|
61
|
+
u := []model.User{}
|
62
|
+
|
63
|
+
d.data.Find(&u)
|
64
|
+
|
65
|
+
return u
|
66
|
+
|
67
|
+
}
|
68
|
+
|
69
|
+
```
|
4
70
|
|
5
71
|
|
6
72
|
|