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