feat: add linked mock data seeding CLI

This commit is contained in:
david
2026-07-28 22:42:21 +08:00
parent e3575465d0
commit 059a26f9f7
3 changed files with 583 additions and 1 deletions

View File

@@ -4,8 +4,15 @@ package main
import (
"fmt"
"os"
"git.apinb.com/bsm-sdk/core/database"
"git.apinb.com/heqiapp/platforms/backend/api/internal/config"
"git.apinb.com/heqiapp/platforms/backend/api/internal/initdb"
"git.apinb.com/heqiapp/platforms/backend/api/internal/seed"
)
const serviceKey = "heqi"
func main() {
if len(os.Args) < 2 {
printUsage()
@@ -19,6 +26,12 @@ func main() {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
case "mock-data":
if err := writeMockData(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("mock data written successfully")
default:
fmt.Fprintf(os.Stderr, "unknown command: %s\n", os.Args[1])
printUsage()
@@ -27,5 +40,27 @@ func main() {
}
func printUsage() {
fmt.Fprintln(os.Stderr, "usage: platform-cli <version|resource-contract>")
fmt.Fprintln(os.Stderr, "usage: platform-cli <version|resource-contract|mock-data>")
}
func writeMockData() error {
config.New(serviceKey)
if config.Spec.Databases == nil {
return fmt.Errorf("database configuration is required")
}
databaseService, err := database.NewDatabase(
config.Spec.Databases.Driver,
config.Spec.Databases.Source,
nil,
)
if err != nil {
return fmt.Errorf("connect database: %w", err)
}
if err := initdb.New(databaseService); err != nil {
return fmt.Errorf("initialize platform data: %w", err)
}
if err := seed.MockData(databaseService); err != nil {
return fmt.Errorf("write mock data: %w", err)
}
return nil
}