暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.go 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package main
  2. import (
  3. "log"
  4. "net/http"
  5. "git.x2erp.com/qdy/go-base/bootstraps"
  6. "git.x2erp.com/qdy/go-base/middleware"
  7. "git.x2erp.com/qdy/go-db/factory/database"
  8. "git.x2erp.com/qdy/go-db/myhandle"
  9. "git.x2erp.com/qdy/go-db/sqldef"
  10. "go-micro.dev/v4/web"
  11. "git.x2erp.com/qdy/go-svc-configure/service"
  12. _ "git.x2erp.com/qdy/go-svc-configure/tables" // 导入表定义包,触发 init() 函数
  13. )
  14. var (
  15. serviceName = "svc-configure"
  16. serviceVersion = "1"
  17. )
  18. func main() {
  19. // 创建服务启动器
  20. bootstrapper := bootstraps.NewServiceBootstrapper(serviceName, serviceVersion)
  21. //加载配置
  22. bootstrapper.InitConfig()
  23. //构建数据库工厂
  24. bootstrapper.InitDatabase()
  25. //创建表到数据库
  26. creteTabel(bootstrapper.DbFactory)
  27. // 启动服务,传入路由注册函数
  28. bootstrapper.Run(registerRoutes)
  29. }
  30. // 注册所有路由
  31. func registerRoutes(webService web.Service, dbFactory *database.DBFactory) {
  32. // 查询yaml配置文件
  33. webService.Handle("/api/query/yaml", middleware.JWTAuthMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  34. myhandle.QueryHandlerMap(w, r, dbFactory, service.QueryYamlConfigure)
  35. })))
  36. }
  37. func creteTabel(factory *database.DBFactory) {
  38. // 获取数据库连接和类型
  39. db := factory.GetDB()
  40. dbType := factory.GetDBType()
  41. // 创建表同步器
  42. syncer, err := sqldef.NewTableSyncer(db, dbType)
  43. if err != nil {
  44. log.Printf("创建 - 建立器失败: %v", err)
  45. }
  46. // 创建表
  47. if err := syncer.CreateTables(); err != nil {
  48. log.Printf("建表失败: %v", err)
  49. }
  50. log.Println("数据库表建立完成!")
  51. }