diff --git a/internal/core/application.go b/internal/core/application.go index 63c8db1..174b434 100644 --- a/internal/core/application.go +++ b/internal/core/application.go @@ -261,6 +261,5 @@ func initStorage(cfg config.DatabaseConfig, logger *logs.Logger) (database.Stora if err := storage.Migrate(models.GetAllModels()...); err != nil { return nil, fmt.Errorf("数据库迁移失败: %w", err) } - return storage, nil } diff --git a/internal/infra/database/postgres.go b/internal/infra/database/postgres.go index 1933d6b..c5df1b3 100644 --- a/internal/infra/database/postgres.go +++ b/internal/infra/database/postgres.go @@ -70,6 +70,9 @@ func (ps *PostgresStorage) Connect() error { sqlDB.SetMaxIdleConns(ps.maxIdleConns) sqlDB.SetConnMaxLifetime(time.Duration(ps.connMaxLifetime) * time.Second) + // gorm会根据字段名自动创建外键约束, 但触发器Task的PlanID是不存在的, 所以需要关闭, 这个关闭对 + ps.db.DisableForeignKeyConstraintWhenMigrating = true + ps.logger.Info("PostgreSQL数据库连接成功") return nil }