202504231037_add_indexes.go raw
1 package migrations
2
3 import (
4 _ "embed"
5
6 "github.com/go-gormigrate/gormigrate/v2"
7 "gorm.io/gorm"
8 )
9
10 var _202504231037_add_indexes = &gormigrate.Migration{
11 ID: "202504231037_add_indexes",
12 Migrate: func(db *gorm.DB) error {
13
14 if err := db.Transaction(func(tx *gorm.DB) error {
15
16 if err := tx.Exec(`
17 DROP INDEX IF EXISTS idx_transactions_request_event_id;
18 DROP INDEX IF EXISTS idx_transactions_created_at;
19 DROP INDEX IF EXISTS idx_transactions_settled_at;
20 DROP INDEX IF EXISTS idx_transactions_app_id_type_state_created_at_settled_at_payment_hash;
21 `).Error; err != nil {
22 return err
23 }
24
25 if err := tx.Exec(`
26 CREATE INDEX idx_transactions_state_type ON transactions(state, type);
27 CREATE INDEX idx_transactions_state_type_updated_at ON transactions(state, type, updated_at);
28 CREATE INDEX idx_transactions_app_id_state_type_updated_at ON transactions(app_id, state, type, updated_at);
29 CREATE INDEX idx_transactions_payment_hash_settled_at_created_at ON transactions(payment_hash, settled_at, created_at);
30 `).Error; err != nil {
31 return err
32 }
33
34 return nil
35 }); err != nil {
36 return err
37 }
38
39 return nil
40 },
41 Rollback: func(tx *gorm.DB) error {
42 return nil
43 },
44 }
45