diff --git a/tests/migrate_test.go b/tests/migrate_test.go index cfd3e0ac..b1aa27a1 100644 --- a/tests/migrate_test.go +++ b/tests/migrate_test.go @@ -1685,3 +1685,29 @@ func TestTableType(t *testing.T) { t.Fatalf("expected comment %s got %s", tblComment, comment) } } + +func TestMigrateRaceCondition(t *testing.T) { + type TestTable struct { + gorm.Model + } + + for a := 0; a < 2; a++ { + t.Run("drop and migrate", func(t *testing.T) { + t.Run("drop", func(t *testing.T) { + if err := DB.Migrator().DropTable(&TestTable{}); err != nil { + t.Fatalf("failed to drop table: %v", err) + } + }) + + for i := 0; i < 2; i++ { + t.Run("migrate", func(t *testing.T) { + t.Parallel() + + if err := DB.AutoMigrate(&TestTable{}); err != nil { + t.Fatalf("failed to migrate: %v", err) + } + }) + } + }) + } +}