39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"log/slog"
|
|
"os"
|
|
|
|
"git.kocoder.xyz/kocoded/vt/model"
|
|
"github.com/joho/godotenv"
|
|
"gorm.io/driver/postgres"
|
|
"gorm.io/gen"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func main() {
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
slog.Error("Error Loading Environment variables! ", "error", err)
|
|
}
|
|
|
|
db, err := gorm.Open(postgres.Open(os.Getenv("DB_DSN")), &gorm.Config{})
|
|
if err != nil {
|
|
slog.Error("Error connecting to the Database", "error", err)
|
|
}
|
|
|
|
g := gen.NewGenerator(gen.Config{
|
|
OutPath: "query",
|
|
Mode: gen.WithoutContext | gen.WithDefaultQuery | gen.WithQueryInterface, // generate mode
|
|
})
|
|
|
|
// gormdb, _ := gorm.Open(mysql.Open("root:@(127.0.0.1:3306)/demo?charset=utf8mb4&parseTime=True&loc=Local"))
|
|
g.UseDB(db) // reuse your gorm db
|
|
|
|
// Generate basic type-safe DAO API for struct `model.User` following conventions
|
|
g.ApplyBasic(model.Mandant{}, model.User{}, model.Ansprechpartner{}, model.Dokument{}, model.Firma{}, model.Kalender{}, model.Kalendereintrag{}, model.Kostenstelle{}, model.Lager{}, model.Lagerplatz{}, model.Material{}, model.Nachricht{}, model.Projekt{}, model.Rechnung{}, model.Rechnungsposition{}, model.Scanobject{}, model.User{}, model.Zahlung{}, model.FirmaAnsprechpartner{}, model.Task{})
|
|
|
|
// Generate the code
|
|
g.Execute()
|
|
}
|