qdy преди 2 месеца
родител
ревизия
b91b963443
променени са 2 файла, в които са добавени 36 реда и са изтрити 67 реда
  1. 17
    19
      sqldef/table_create.go
  2. 19
    48
      sqldef/table_manager.go

+ 17
- 19
sqldef/table_create.go Целия файл

33
 
33
 
34
 // CreateAllTables 同步所有注册的表
34
 // CreateAllTables 同步所有注册的表
35
 // recreate: true - 表存在则删除重建;false - 表不存在则创建
35
 // recreate: true - 表存在则删除重建;false - 表不存在则创建
36
-func (ts *TableSyncer) CreateAllTables(recreate bool) error {
36
+func (ts *TableSyncer) createAllTables(recreate bool) error {
37
 	// 确保注册表已初始化
37
 	// 确保注册表已初始化
38
 	globalRegistry.ensureInit()
38
 	globalRegistry.ensureInit()
39
 
39
 
136
 	return nil
136
 	return nil
137
 }
137
 }
138
 
138
 
139
-// CreateTables 创建所有不存在的表
140
-func (ts *TableSyncer) CreateTables() error {
141
-	return ts.CreateAllTables(false)
142
-}
143
-
144
-// RecreateTables 重建所有表
145
-func (ts *TableSyncer) RecreateTables() error {
146
-	return ts.CreateAllTables(true)
147
-}
148
-
149
-// 包级便捷函数
150
-
151
 // SyncTables 同步所有表
139
 // SyncTables 同步所有表
152
-func SyncTables(db *sqlx.DB, dbType string, recreate bool) error {
140
+func syncTables(db *sqlx.DB, dbType string, recreate bool) error {
153
 	syncer, err := NewTableSyncer(db, dbType)
141
 	syncer, err := NewTableSyncer(db, dbType)
154
 	if err != nil {
142
 	if err != nil {
155
 		return err
143
 		return err
156
 	}
144
 	}
157
-	return syncer.CreateAllTables(recreate)
145
+	return syncer.createAllTables(recreate)
158
 }
146
 }
159
 
147
 
148
+// // CreateTables 创建所有不存在的表
149
+// func CreateTables(db *sqlx.DB, dbType string) error {
150
+// 	return syncTables(db, dbType, false)
151
+// }
152
+
153
+// // RecreateTables 重建所有表
154
+// func RecreateTables(db *sqlx.DB, dbType string) error {
155
+// 	return syncTables(db, dbType, true)
156
+// }
157
+
160
 // CreateTables 创建所有不存在的表
158
 // CreateTables 创建所有不存在的表
161
-func CreateTables(db *sqlx.DB, dbType string) error {
162
-	return SyncTables(db, dbType, false)
159
+func (ts *TableSyncer) CreateTables() error {
160
+	return ts.createAllTables(false)
163
 }
161
 }
164
 
162
 
165
 // RecreateTables 重建所有表
163
 // RecreateTables 重建所有表
166
-func RecreateTables(db *sqlx.DB, dbType string) error {
167
-	return SyncTables(db, dbType, true)
164
+func (ts *TableSyncer) RecreateTables() error {
165
+	return ts.createAllTables(true)
168
 }
166
 }

+ 19
- 48
sqldef/table_manager.go Целия файл

3
 
3
 
4
 import (
4
 import (
5
 	"fmt"
5
 	"fmt"
6
+	"log"
6
 	"sync"
7
 	"sync"
7
 
8
 
8
 	"git.x2erp.com/qdy/go-db/sqldef/generators"
9
 	"git.x2erp.com/qdy/go-db/sqldef/generators"
85
 	return f.instance
86
 	return f.instance
86
 }
87
 }
87
 
88
 
88
-// SyncTables 同步所有注册的表结构(懒加载执行器)
89
+// createTables 建立所有注册的表结构(懒加载执行器)
89
 // recreate: true - 如果表存在则删除重建;false - 如果表不存在则创建
90
 // recreate: true - 如果表存在则删除重建;false - 如果表不存在则创建
90
-func (tm *TableManager) SyncTables(recreate bool) error {
91
+func (tm *TableManager) createTables(recreate bool) error {
91
 	// 确保注册表已初始化
92
 	// 确保注册表已初始化
92
 	globalRegistry.ensureInit()
93
 	globalRegistry.ensureInit()
93
 
94
 
101
 
102
 
102
 	// 按顺序处理所有表
103
 	// 按顺序处理所有表
103
 	for _, table := range tables {
104
 	for _, table := range tables {
104
-		err := tm.syncTable(table, recreate)
105
+		err := tm.createTable(table, recreate)
105
 		if err != nil {
106
 		if err != nil {
106
-			return fmt.Errorf("同步表 %s 失败: %w", table.Name, err)
107
+			return fmt.Errorf("建立表 %s 失败: %w", table.Name, err)
107
 		}
108
 		}
108
 	}
109
 	}
109
 
110
 
127
 	return tm.initialized && tm.ddlExecutor != nil
128
 	return tm.initialized && tm.ddlExecutor != nil
128
 }
129
 }
129
 
130
 
130
-// syncTable 同步单个表
131
-func (tm *TableManager) syncTable(table generators.TableDDL, recreate bool) error {
131
+// createTable 建立单个表
132
+func (tm *TableManager) createTable(table generators.TableDDL, recreate bool) error {
132
 	// 检查表是否存在
133
 	// 检查表是否存在
133
 	exists, err := tm.ddlExecutor.TableExists(table.Name)
134
 	exists, err := tm.ddlExecutor.TableExists(table.Name)
134
 	if err != nil {
135
 	if err != nil {
143
 			if err := tm.ddlExecutor.ExecuteDDL(dropSQL); err != nil {
144
 			if err := tm.ddlExecutor.ExecuteDDL(dropSQL); err != nil {
144
 				return fmt.Errorf("删除表 %s 失败: %w", table.Name, err)
145
 				return fmt.Errorf("删除表 %s 失败: %w", table.Name, err)
145
 			}
146
 			}
146
-			fmt.Printf("表 %s 已删除\n", table.Name)
147
+			log.Printf("表 %s 已删除\n", table.Name)
147
 
148
 
148
 			// 重新创建表
149
 			// 重新创建表
149
 			if err := tm.ddlExecutor.ExecuteDDL(table.SQL); err != nil {
150
 			if err := tm.ddlExecutor.ExecuteDDL(table.SQL); err != nil {
150
 				return fmt.Errorf("创建表 %s 失败: %w", table.Name, err)
151
 				return fmt.Errorf("创建表 %s 失败: %w", table.Name, err)
151
 			}
152
 			}
152
-			fmt.Printf("表 %s 已创建\n", table.Name)
153
+			log.Printf("表 %s 已创建\n", table.Name)
153
 		} else {
154
 		} else {
154
 			// 不存在直接创建
155
 			// 不存在直接创建
155
 			if err := tm.ddlExecutor.ExecuteDDL(table.SQL); err != nil {
156
 			if err := tm.ddlExecutor.ExecuteDDL(table.SQL); err != nil {
156
 				return fmt.Errorf("创建表 %s 失败: %w", table.Name, err)
157
 				return fmt.Errorf("创建表 %s 失败: %w", table.Name, err)
157
 			}
158
 			}
158
-			fmt.Printf("表 %s 已创建\n", table.Name)
159
+			log.Printf("表 %s 已创建\n", table.Name)
159
 		}
160
 		}
160
 	} else {
161
 	} else {
161
 		// 如果不存在就建立
162
 		// 如果不存在就建立
163
 			if err := tm.ddlExecutor.ExecuteDDL(table.SQL); err != nil {
164
 			if err := tm.ddlExecutor.ExecuteDDL(table.SQL); err != nil {
164
 				return fmt.Errorf("创建表 %s 失败: %w", table.Name, err)
165
 				return fmt.Errorf("创建表 %s 失败: %w", table.Name, err)
165
 			}
166
 			}
166
-			fmt.Printf("表 %s 已创建\n", table.Name)
167
+			log.Printf("表 %s 已创建\n", table.Name)
167
 		} else {
168
 		} else {
168
-			fmt.Printf("表 %s 已存在,跳过创建\n", table.Name)
169
+			log.Printf("表 %s 已存在,跳过创建\n", table.Name)
169
 		}
170
 		}
170
 	}
171
 	}
171
 
172
 
172
 	return nil
173
 	return nil
173
 }
174
 }
174
 
175
 
175
-// CreateTables 创建所有表(不存在则创建)
176
-func (tm *TableManager) CreateTables() error {
177
-	return tm.SyncTables(false)
178
-}
179
-
180
 // RecreateTables 重建所有表(存在则删除重建)
176
 // RecreateTables 重建所有表(存在则删除重建)
181
 func (tm *TableManager) RecreateTables() error {
177
 func (tm *TableManager) RecreateTables() error {
182
-	return tm.SyncTables(true)
183
-}
184
-
185
-// CreateIndexes 创建索引
186
-func (tm *TableManager) CreateIndexes() error {
187
-	// 这里可以添加索引创建的逻辑
188
-	// 由于TableDDL中没有包含索引信息,所以暂时为空
189
-
190
-	// 暂时返回nil,表示索引创建成功(实际上是空的)
191
-	fmt.Println("创建索引方法(空实现)")
192
-	return nil
193
-}
194
-
195
-// CreateTablesAndIndexes 创建表及其索引(便捷方法)
196
-func (tm *TableManager) CreateTablesAndIndexes(recreateTables bool) error {
197
-	if err := tm.SyncTables(recreateTables); err != nil {
198
-		return err
199
-	}
200
-
201
-	return tm.CreateIndexes()
178
+	return tm.createTables(true)
202
 }
179
 }
203
 
180
 
204
 // GetRegisteredTables 获取所有注册的表名
181
 // GetRegisteredTables 获取所有注册的表名
224
 // PrintRegisteredTables 打印所有注册的表信息
201
 // PrintRegisteredTables 打印所有注册的表信息
225
 func (tm *TableManager) PrintRegisteredTables() {
202
 func (tm *TableManager) PrintRegisteredTables() {
226
 	tables := tm.GetRegisteredTables()
203
 	tables := tm.GetRegisteredTables()
227
-	fmt.Printf("注册的表数量: %d\n", len(tables))
204
+	log.Printf("注册的表数量: %d\n", len(tables))
228
 	for i, name := range tables {
205
 	for i, name := range tables {
229
-		fmt.Printf("%d. %s\n", i+1, name)
206
+		log.Printf("%d. %s\n", i+1, name)
230
 	}
207
 	}
231
 }
208
 }
232
 
209
 
234
 // CreateAllTables 创建所有表(便捷函数,自动获取单例)
211
 // CreateAllTables 创建所有表(便捷函数,自动获取单例)
235
 func CreateAllTables(executor DDLExecutor) error {
212
 func CreateAllTables(executor DDLExecutor) error {
236
 	tm := GetTableManagerWithExecutor(executor)
213
 	tm := GetTableManagerWithExecutor(executor)
237
-	return tm.CreateTables()
238
-}
239
-
240
-// RecreateAllTables 重建所有表(便捷函数,自动获取单例)
241
-func RecreateAllTables(executor DDLExecutor) error {
242
-	tm := GetTableManagerWithExecutor(executor)
243
-	return tm.RecreateTables()
214
+	return tm.createTables(false)
244
 }
215
 }
245
 
216
 
246
-// SyncAllTables 同步所有表(便捷函数,自动获取单例)
247
-func SyncAllTables(executor DDLExecutor, recreate bool) error {
217
+// DeleteAanCreateAllTables 删除并建立所有表(便捷函数,自动获取单例)
218
+func DeleteAanCreateAllTables(executor DDLExecutor) error {
248
 	tm := GetTableManagerWithExecutor(executor)
219
 	tm := GetTableManagerWithExecutor(executor)
249
-	return tm.SyncTables(recreate)
220
+	return tm.createTables(true)
250
 }
221
 }

Loading…
Отказ
Запис