modified: pkg/database/postgres.go

fix autoMigrate
This commit is contained in:
2025-09-27 05:48:51 +05:00
parent 4c8b43dad7
commit 61d9e26c49
+19 -12
View File
@@ -29,17 +29,24 @@ func NewPostgresConnection(cfg *config.Config) (*gorm.DB, error) {
} }
func autoMigrate(db *gorm.DB) error { func autoMigrate(db *gorm.DB) error {
models := []interface{}{ // Сначала добавляем колонку как NULLABLE
if err := db.Exec(`ALTER TABLE users ADD COLUMN IF NOT EXISTS password VARCHAR(255)`).Error; err != nil {
return err
}
// Затем обновляем существующие записи (если нужно установить дефолтное значение)
if err := db.Exec(`UPDATE users SET password = '' WHERE password IS NULL`).Error; err != nil {
return err
}
// И только потом меняем на NOT NULL
if err := db.Exec(`ALTER TABLE users ALTER COLUMN password SET NOT NULL`).Error; err != nil {
return err
}
// Или используйте автоматические миграции GORM
return db.AutoMigrate(
&model.User{}, &model.User{},
// Добавьте другие модели здесь // другие модели...
} )
for _, m := range models {
if err := db.AutoMigrate(m); err != nil {
return fmt.Errorf("failed to migrate model: %w", err)
}
}
log.Println("Database migration completed")
return nil
} }