35 lines
670 B
Go
35 lines
670 B
Go
package database
|
|
|
|
import (
|
|
"gorm.io/driver/postgres"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/logger"
|
|
|
|
"app-deploy-platform/backend/internal/config"
|
|
"app-deploy-platform/backend/internal/model"
|
|
)
|
|
|
|
func Open(cfg config.Config) (*gorm.DB, error) {
|
|
db, err := gorm.Open(postgres.Open(cfg.Database.DSN), &gorm.Config{
|
|
Logger: logger.Default.LogMode(logger.Warn),
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if err := db.AutoMigrate(
|
|
&model.Host{},
|
|
&model.ServiceInstance{},
|
|
&model.Release{},
|
|
&model.BuildJob{},
|
|
&model.Deployment{},
|
|
&model.DeploymentTarget{},
|
|
&model.ReleaseRun{},
|
|
&model.ReleaseRunStep{},
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return db, nil
|
|
}
|