-
Notifications
You must be signed in to change notification settings - Fork 174
/
Copy pathseeder.go
64 lines (55 loc) · 1.31 KB
/
seeder.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package seed
import (
"log"
"github.com/jinzhu/gorm"
"github.com/victorsteven/fullstack/api/models"
)
var users = []models.User{
models.User{
Nickname: "Steven victor",
Email: "steven@gmail.com",
Password: "password",
},
models.User{
Nickname: "Martin Luther",
Email: "luther@gmail.com",
Password: "password",
},
}
var posts = []models.Post{
models.Post{
Title: "Title 1",
Content: "Hello world 1",
},
models.Post{
Title: "Title 2",
Content: "Hello world 2",
},
}
func Load(db *gorm.DB) {
err := db.Debug().DropTableIfExists(&models.Post{}, &models.User{}).Error
if err != nil {
log.Fatalf("cannot drop table: %v", err)
}
err = db.Debug().AutoMigrate(&models.User{}, &models.Post{}).Error
if err != nil {
log.Fatalf("cannot migrate table: %v", err)
}
/*
err = db.Debug().Model(&models.Post{}).AddForeignKey("author_id", "users(id)", "cascade", "cascade").Error
if err != nil {
log.Fatalf("attaching foreign key error: %v", err)
}
*/
for i, _ := range users {
err = db.Debug().Model(&models.User{}).Create(&users[i]).Error
if err != nil {
log.Fatalf("cannot seed users table: %v", err)
}
posts[i].AuthorID = users[i].ID
err = db.Debug().Model(&models.Post{}).Create(&posts[i]).Error
if err != nil {
log.Fatalf("cannot seed posts table: %v", err)
}
}
}