SqlLoad.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package sqlload
  2. import (
  3. "go-create-template/configs"
  4. )
  5. var CTables []CTable
  6. var CGans []Gen
  7. // Load 加载数据库参数
  8. func Load() {
  9. metas, err := configs.Engine.DBMetas()
  10. if err != nil {
  11. panic(err)
  12. }
  13. CTables = make([]CTable, len(metas))
  14. for i := range metas {
  15. table := CTable{
  16. Name: metas[i].Name,
  17. Comment: metas[i].Comment,
  18. Key: CTableColumn{},
  19. CTableColumns: make([]CTableColumn, len(metas[i].Columns())),
  20. }
  21. for j := range metas[i].Columns() {
  22. column := CTableColumn{}
  23. column.Name = metas[i].Columns()[j].Name
  24. column.IsPrimaryKey = metas[i].Columns()[j].IsPrimaryKey
  25. column.IsAutoIncrement = metas[i].Columns()[j].IsAutoIncrement
  26. column.Comment = metas[i].Columns()[j].Comment
  27. column.SQLType = CSQLType{
  28. Name: metas[i].Columns()[j].SQLType.Name,
  29. DefaultLength: metas[i].Columns()[j].SQLType.DefaultLength,
  30. DefaultLength2: metas[i].Columns()[j].SQLType.DefaultLength2,
  31. }
  32. column.Nullable = metas[i].Columns()[j].Nullable
  33. if column.IsPrimaryKey {
  34. table.Key = column
  35. }
  36. table.CTableColumns[j] = column
  37. }
  38. CTables[i] = table
  39. }
  40. LoadGenTableAndGenTableColumn()
  41. }
  42. // LoadGenTableAndGenTableColumn 加载数据库中的表格和列字段生成
  43. func LoadGenTableAndGenTableColumn() {
  44. var tables = make([]GenTable, 0)
  45. err := configs.Engine.Table("gen_table").Find(&tables)
  46. if err != nil {
  47. panic(err)
  48. }
  49. var genTableColumns []GenTableColumn
  50. err = configs.Engine.Table("gen_table_column").Find(&genTableColumns)
  51. if err != nil {
  52. panic(err)
  53. }
  54. gens := make([]Gen, len(tables))
  55. m := make(map[int64]int)
  56. for i := range tables {
  57. gen := Gen{Table: tables[i], TableColumns: make([]GenTableColumn, 0)}
  58. gens[i] = gen
  59. m[tables[i].Id] = i
  60. }
  61. for i := range genTableColumns {
  62. gen, ok := m[genTableColumns[i].TableId]
  63. if ok {
  64. gens[gen].TableColumns = append(gens[gen].TableColumns, genTableColumns[i])
  65. }
  66. }
  67. CGans = gens
  68. }