mirror of
https://github.com/muety/wakapi.git
synced 2025-12-05 22:20:24 -08:00
fix: improve robustness of durations key column migration
This commit is contained in:
@@ -30,16 +30,23 @@ func init() {
|
||||
}
|
||||
|
||||
if err := db.Transaction(func(tx *gorm.DB) error {
|
||||
if tx.Migrator().HasColumn(&models.Duration{}, "interval") { // legacy stuff
|
||||
if err := tx.Migrator().DropColumn(&models.Duration{}, "interval"); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if err := tx.Migrator().RenameTable("durations", "durations_old"); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := tx.Migrator().DropIndex(&models.Duration{}, "idx_time_duration_user"); err != nil {
|
||||
return err
|
||||
if tx.Migrator().HasIndex(&models.Duration{}, "idx_time_duration_user") {
|
||||
if err := tx.Migrator().DropIndex(&models.Duration{}, "idx_time_duration_user"); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if err := tx.Migrator().CreateTable(&models.Duration{}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := tx.Exec("insert into durations(user_id, time, duration, project, language, editor, operating_system, machine, category, branch, entity, num_heartbeats, group_hash, timeout) select * from durations_old").Error; err != nil {
|
||||
if err := tx.Exec("insert into durations(user_id, time, duration, project, language, editor, operating_system, machine, category, branch, entity, num_heartbeats, group_hash, timeout) select user_id, time, duration, project, language, editor, operating_system, machine, category, branch, entity, num_heartbeats, group_hash, timeout from durations_old").Error; err != nil {
|
||||
return err
|
||||
}
|
||||
if err := tx.Migrator().DropTable("durations_old"); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user