Files
simrsx-be/internal/interface/migration/migration.go
2025-11-13 10:37:54 +07:00

44 lines
794 B
Go

package migration
import (
"fmt"
"io"
"os"
"ariga.io/atlas-provider-gorm/gormschema"
"gorm.io/gorm"
"gorm.io/gorm/schema"
)
func loader(input string) {
gormCfg := &gorm.Config{
NamingStrategy: schema.NamingStrategy{
SingularTable: true,
NoLowerCase: true,
},
}
stmts, err := gormschema.New("postgres", gormschema.WithConfig(gormCfg)).Load(getEntities(input)...)
if err != nil {
fmt.Fprintf(os.Stderr, "failed to load gorm schema: %v\n", err)
os.Exit(1)
}
_, _ = io.WriteString(os.Stdout, stmts)
}
func getEntities(input string) []any {
switch input {
case "main":
return getMainEntities()
case "satusehat":
return getSatuSehatEntities()
case "simgossync":
return getSimgosSyncEntities()
}
return nil
}
func Migrate(input string) {
loader(input)
}