package gs import ( v1 "gogs.tyduyong.com/duyong/dy-admin/internal/iam/models/v1" "gogs.tyduyong.com/duyong/dy-pkg/app/infrastructure" "gogs.tyduyong.com/duyong/dy-pkg/app/options" "gogs.tyduyong.com/duyong/dy-pkg/errors" "gogs.tyduyong.com/duyong/dy-pkg/logs" "gorm.io/gorm" ) const ( iamSchema = "iam" ) func InitPGSqlDB(pgConfig *options.PGSQLOptions) *gorm.DB { pgDB, err := infrastructure.InitPGSql(pgConfig) if err != nil { logs.Fatal("init pgsql failed", logs.Err(err)) } // 创建schema if err = pgDB.Exec("CREATE SCHEMA IF NOT EXISTS " + iamSchema).Error; err != nil { logs.Fatal("failed to create schema", logs.Err(err)) } // 设置默认 if err = pgDB.Exec("SET search_path TO " + iamSchema).Error; err != nil { logs.Fatal("failed to set default schema", logs.Err(err)) } // 创建表 if err = migrateTables(pgDB); err != nil { logs.Fatal("failed to migrate tables", logs.Err(err)) } return pgDB } func migrateTables(db *gorm.DB) error { if err := db.AutoMigrate(&v1.User{}); err != nil { return errors.Wrap(err, "migrate user model failed") } return nil }