/
20240312000000.go
50 lines (48 loc) · 1.86 KB
/
20240312000000.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
package migration
import (
"github.com/go-gormigrate/gormigrate/v2"
"gorm.io/gorm"
)
// migrate20240312000000
// implemented a basic variant of spam protection
func migrate20240312000000() *gormigrate.Migration {
return &gormigrate.Migration{
ID: "20240312000000",
Migrate: func(tx *gorm.DB) error {
if err := tx.Exec("alter table feedback modify email_id text charset utf8mb3 not null").Error; err != nil {
return err
}
if err := tx.Exec("alter table feedback modify receiver text charset utf8mb3 not null").Error; err != nil {
return err
}
if err := tx.Exec("alter table feedback modify feedback text charset utf8mb3 not null").Error; err != nil {
return err
}
if err := tx.Exec("alter table feedback modify image_count int not null").Error; err != nil {
return err
}
if err := tx.Exec("alter table feedback modify timestamp datetime default current_timestamp() not null").Error; err != nil {
return err
}
return tx.Exec("create unique index receiver_reply_to_feedback_app_version_uindex on feedback (receiver,reply_to,feedback,app_version)").Error
},
Rollback: func(tx *gorm.DB) error {
if err := tx.Exec("alter table feedback modify email_id text charset utf8mb3 null").Error; err != nil {
return err
}
if err := tx.Exec("alter table feedback modify receiver text charset utf8mb3 null").Error; err != nil {
return err
}
if err := tx.Exec("alter table feedback modify feedback text charset utf8mb3 null").Error; err != nil {
return err
}
if err := tx.Exec("alter table feedback modify image_count int null").Error; err != nil {
return err
}
if err := tx.Exec("alter table feedback modify timestamp datetime default current_timestamp() null").Error; err != nil {
return err
}
return tx.Exec("drop index receiver_reply_to_feedback_app_version_uindex on feedback").Error
},
}
}