fix: handle MySQL 'Cannot change column' error in migrations
Added handling for Error 1833 (Cannot change column used in foreign key) in the auto-migration process. This allows migrations to skip gracefully when encountering columns that cannot be modified due to existing foreign key constraints from other databases. The Configuration model has a uuid column that's referenced by a foreign key in RFQ_LOG.qt_configurations, preventing GORM from modifying it during auto-migration. Now this error is caught and skipped like other constraint-related errors. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,8 @@ func Migrate(db *gorm.DB) error {
|
||||
errStr := err.Error()
|
||||
if strings.Contains(errStr, "Can't DROP") ||
|
||||
strings.Contains(errStr, "Duplicate key name") ||
|
||||
strings.Contains(errStr, "check that it exists") {
|
||||
strings.Contains(errStr, "check that it exists") ||
|
||||
strings.Contains(errStr, "Cannot change column") {
|
||||
slog.Warn("migration warning (skipped)", "model", model, "error", errStr)
|
||||
continue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user