65 lines
1.8 KiB
Go
65 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
pgxDeciaml "github.com/jackc/pgx-shopspring-decimal"
|
|
"github.com/jackc/pgx/v5"
|
|
"github.com/jackc/pgx/v5/pgxpool"
|
|
"gitlab.mareshq.com/hq/yggdrasil/internal/bootstrap"
|
|
"gitlab.mareshq.com/hq/yggdrasil/internal/faker"
|
|
"gitlab.mareshq.com/hq/yggdrasil/pkg/training"
|
|
"go.uber.org/zap"
|
|
"os"
|
|
"os/signal"
|
|
"strings"
|
|
"syscall"
|
|
)
|
|
|
|
func main() {
|
|
shutdownCtx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
|
|
defer stop()
|
|
|
|
logger := bootstrap.Logger()
|
|
|
|
databaseURLFile := os.Getenv("DATABASE_URL_FILE")
|
|
if databaseURLFile == "" {
|
|
logger.Fatal("DATABASE_URL_FILE is not set")
|
|
}
|
|
|
|
dat, err := os.ReadFile(databaseURLFile)
|
|
if err != nil {
|
|
logger.Fatal("Error reading DATABASE_URL_FILE", zap.Error(err))
|
|
}
|
|
|
|
databaseURL := string(dat)
|
|
|
|
// clean up url from invalid characters
|
|
databaseURL = strings.ReplaceAll(databaseURL, "\n", "")
|
|
databaseURL = strings.ReplaceAll(databaseURL, "\t", "")
|
|
|
|
pgxConfig, err := pgxpool.ParseConfig(databaseURL)
|
|
if err != nil {
|
|
logger.Fatal("Error parsing database url with pgx (database driver)", zap.Error(err))
|
|
}
|
|
|
|
pgxConfig.AfterConnect = func(ctx context.Context, conn *pgx.Conn) error {
|
|
pgxDeciaml.Register(conn.TypeMap())
|
|
return nil
|
|
}
|
|
|
|
pool, err := pgxpool.NewWithConfig(shutdownCtx, pgxConfig)
|
|
if err != nil {
|
|
logger.Fatal("Error creating pgx pool", zap.Error(err))
|
|
}
|
|
|
|
trainingRepo := training.NewPostgresTrainingRepository(pool)
|
|
trainingDateRepo := training.NewPostgresTrainingDateRepository(pool)
|
|
//trainingDateAttendeeRepo := training.NewPostgresTrainingDateAttendeeRepository(pool)
|
|
|
|
f := faker.NewFaker(trainingRepo, trainingDateRepo)
|
|
if err := f.GenerateFakeData(); err != nil {
|
|
logger.Fatal("Error generating fake data", zap.Error(err))
|
|
}
|
|
|
|
logger.Info("Fake data generated successfully!")
|
|
}
|