package sqlload import ( "go-create-template/configs" ) var CTables []CTable var CGans []Gen // Load 加载数据库参数 func Load() { metas, err := configs.Engine.DBMetas() if err != nil { panic(err) } CTables = make([]CTable, len(metas)) for i := range metas { table := CTable{ Name: metas[i].Name, Comment: metas[i].Comment, Key: CTableColumn{}, CTableColumns: make([]CTableColumn, len(metas[i].Columns())), } for j := range metas[i].Columns() { column := CTableColumn{} column.Name = metas[i].Columns()[j].Name column.IsPrimaryKey = metas[i].Columns()[j].IsPrimaryKey column.IsAutoIncrement = metas[i].Columns()[j].IsAutoIncrement column.Comment = metas[i].Columns()[j].Comment column.SQLType = CSQLType{ Name: metas[i].Columns()[j].SQLType.Name, DefaultLength: metas[i].Columns()[j].SQLType.DefaultLength, DefaultLength2: metas[i].Columns()[j].SQLType.DefaultLength2, } column.Nullable = metas[i].Columns()[j].Nullable if column.IsPrimaryKey { table.Key = column } table.CTableColumns[j] = column } CTables[i] = table } LoadGenTableAndGenTableColumn() } // LoadGenTableAndGenTableColumn 加载数据库中的表格和列字段生成 func LoadGenTableAndGenTableColumn() { var tables = make([]GenTable, 0) err := configs.Engine.Table("gen_table").Find(&tables) if err != nil { panic(err) } var genTableColumns []GenTableColumn err = configs.Engine.Table("gen_table_column").Find(&genTableColumns) if err != nil { panic(err) } gens := make([]Gen, len(tables)) m := make(map[int64]int) for i := range tables { gen := Gen{Table: tables[i], TableColumns: make([]GenTableColumn, 0)} gens[i] = gen m[tables[i].Id] = i } for i := range genTableColumns { gen, ok := m[genTableColumns[i].TableId] if ok { gens[gen].TableColumns = append(gens[gen].TableColumns, genTableColumns[i]) } } CGans = gens }