提交 205d2934828f5bf03f3751c51a0c23d63756940a
1 个父辈
8a3b68e3
2021.8.10 14:44 update table_refresh with task
正在显示
1 个修改的文件
包含
143 行增加
和
75 行删除
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | 5 | ||
6 | 6 | ||
7 | import traceback | 7 | import traceback |
8 | -from app.models import Table,Database,DES,Columns,db,TableVacuate | 8 | +from app.models import Table,Database,DES,Columns,db,TableVacuate,Task,Process |
9 | 9 | ||
10 | from osgeo.ogr import DataSource,FeatureDefn,FieldDefn,Layer | 10 | from osgeo.ogr import DataSource,FeatureDefn,FieldDefn,Layer |
11 | 11 | ||
@@ -20,59 +20,108 @@ from app.util.component.StructuredPrint import StructurePrint | @@ -20,59 +20,108 @@ from app.util.component.StructuredPrint import StructurePrint | ||
20 | from app.util.component.ApiTemplate import ApiTemplate | 20 | from app.util.component.ApiTemplate import ApiTemplate |
21 | from app.util.component.GeometryAdapter import GeometryAdapter | 21 | from app.util.component.GeometryAdapter import GeometryAdapter |
22 | 22 | ||
23 | +import multiprocessing | ||
24 | +import configure | ||
25 | + | ||
23 | class Api(ApiTemplate): | 26 | class Api(ApiTemplate): |
24 | api_name = "数据刷新" | 27 | api_name = "数据刷新" |
25 | def process(self): | 28 | def process(self): |
26 | - | ||
27 | - | ||
28 | res = {} | 29 | res = {} |
29 | - pg_ds =None | ||
30 | - data_session=None | ||
31 | - this_time = datetime.datetime.now() | ||
32 | try: | 30 | try: |
33 | - | 31 | + |
34 | database_guid = self.para.get("database_guid") | 32 | database_guid = self.para.get("database_guid") |
35 | database = Database.query.filter_by(guid=database_guid).one_or_none() | 33 | database = Database.query.filter_by(guid=database_guid).one_or_none() |
36 | - | 34 | + |
37 | if not database: | 35 | if not database: |
38 | raise Exception("数据库不存在!") | 36 | raise Exception("数据库不存在!") |
39 | - spatial_tables = Table.query.order_by(Table.create_time.desc()).filter_by(database_guid=database_guid).filter(Table.table_type!=0).all() | 37 | + # 初始化task |
38 | + task_guid = uuid.uuid1().__str__() | ||
39 | + | ||
40 | + # result = self.table_refresh(database) | ||
41 | + | ||
42 | + refresh_process = multiprocessing.Process(target=self.table_refresh,args=(database,task_guid)) | ||
43 | + refresh_process.start() | ||
44 | + | ||
45 | + task = Task(guid=task_guid, | ||
46 | + name="数据库{}更新".format(database.alias), | ||
47 | + create_time=datetime.datetime.now(), | ||
48 | + state=0, | ||
49 | + task_type=3, | ||
50 | + creator=self.para.get("creator"), | ||
51 | + file_name=None, | ||
52 | + database_guid=database.guid, | ||
53 | + process="数据库更新中") | ||
54 | + | ||
55 | + db.session.add(task) | ||
56 | + db.session.commit() | ||
57 | + res["msg"] = "数据库更新已提交!" | ||
58 | + res["data"] = task_guid | ||
59 | + res["result"] = True | ||
60 | + | ||
61 | + except Exception as e: | ||
62 | + print(traceback.format_exc()) | ||
63 | + raise e | ||
64 | + return res | ||
65 | + | ||
66 | + | ||
67 | + def table_refresh(self,database,task_guid): | ||
68 | + | ||
69 | + pg_ds =None | ||
70 | + data_session=None | ||
71 | + result = {} | ||
72 | + sys_session = None | ||
73 | + try: | ||
74 | + sys_session = PGUtil.get_db_session(configure.SQLALCHEMY_DATABASE_URI) | ||
75 | + | ||
76 | + | ||
77 | + this_time = datetime.datetime.now() | ||
78 | + database_guid = database.guid | ||
79 | + | ||
80 | + # 已注册空间表 | ||
81 | + spatial_tables = sys_session.query(Table).order_by(Table.create_time.desc()).filter_by(database_guid=database_guid).filter( | ||
82 | + Table.table_type != 0).all() | ||
83 | + | ||
84 | + # 已注册空间表名 | ||
40 | spatial_tables_names = [table.name for table in spatial_tables] | 85 | spatial_tables_names = [table.name for table in spatial_tables] |
41 | - db_tables_names = [] | ||
42 | - | ||
43 | 86 | ||
87 | + # 实体库datasource | ||
44 | pg_ds: DataSource = PGUtil.open_pg_data_source(1, DES.decode(database.sqlalchemy_uri)) | 88 | pg_ds: DataSource = PGUtil.open_pg_data_source(1, DES.decode(database.sqlalchemy_uri)) |
89 | + | ||
45 | # 更新空间表 | 90 | # 更新空间表 |
46 | # 增加表 | 91 | # 增加表 |
47 | - self.add_spatail_table(database, pg_ds, spatial_tables_names, db_tables_names, this_time) | ||
48 | - | 92 | + db_tables_names = self.add_spatail_table(database, pg_ds, sys_session,spatial_tables_names, this_time)# 实体库中空间表名 |
93 | + | ||
49 | # 删除/修改表 | 94 | # 删除/修改表 |
50 | - self.edit_spatial_table(pg_ds, spatial_tables, db_tables_names, this_time) | 95 | + self.edit_spatial_table(pg_ds, sys_session,spatial_tables, db_tables_names, this_time) |
51 | 96 | ||
52 | - # 处理抽稀表 | ||
53 | - self.deal_vacuate_table(pg_ds,database.guid) | 97 | + # 空间表处理完毕 |
98 | + sys_session.commit() | ||
54 | 99 | ||
100 | + # 处理抽稀表 | ||
101 | + self.deal_vacuate_table(pg_ds,sys_session, database.guid) | ||
55 | 102 | ||
56 | # 空间表处理完毕 | 103 | # 空间表处理完毕 |
57 | - db.session.commit() | 104 | + sys_session.commit() |
58 | 105 | ||
59 | - | ||
60 | # 注册普通表 | 106 | # 注册普通表 |
61 | # 实体库连接 | 107 | # 实体库连接 |
62 | data_session: Session = PGUtil.get_db_session(DES.decode(database.sqlalchemy_uri)) | 108 | data_session: Session = PGUtil.get_db_session(DES.decode(database.sqlalchemy_uri)) |
63 | - | ||
64 | - # 空间表 | ||
65 | - spatial_tables = Table.query.order_by(Table.create_time.desc()).filter_by(database_guid=database_guid).filter(Table.table_type!=0).all() | 109 | + |
110 | + # 处理后空间表 | ||
111 | + spatial_tables = sys_session.query(Table).order_by(Table.create_time.desc()).filter_by(database_guid=database_guid).filter( | ||
112 | + Table.table_type != 0).all() | ||
113 | + # 处理后空间表名 | ||
66 | spatial_tables_names = [table.name for table in spatial_tables] | 114 | spatial_tables_names = [table.name for table in spatial_tables] |
67 | - | ||
68 | - | ||
69 | - #原有普通表 | ||
70 | - common_tables = Table.query.order_by(Table.create_time.desc()).filter_by(database_guid=database_guid).filter(Table.table_type==0).all() | 115 | + |
116 | + # 原有普通表 | ||
117 | + common_tables = sys_session.query(Table).order_by(Table.create_time.desc()).filter_by(database_guid=database_guid).filter( | ||
118 | + Table.table_type == 0).all() | ||
119 | + # 原有普通表 名 | ||
71 | origin_common_tables_name = [table.name for table in common_tables] | 120 | origin_common_tables_name = [table.name for table in common_tables] |
72 | - | ||
73 | - | 121 | + |
74 | # 现有普通表 | 122 | # 现有普通表 |
75 | - real_common_tables_name =[] | 123 | + real_common_tables_name = [] |
124 | + | ||
76 | # 只注册public中的表 | 125 | # 只注册public中的表 |
77 | common_result = data_session.execute( | 126 | common_result = data_session.execute( |
78 | "select relname as tabname from pg_class c where relkind = 'r' and relnamespace=2200 and relname not like 'pg_%' and relname not like 'sql_%' order by relname").fetchall() | 127 | "select relname as tabname from pg_class c where relkind = 'r' and relnamespace=2200 and relname not like 'pg_%' and relname not like 'sql_%' order by relname").fetchall() |
@@ -80,36 +129,56 @@ class Api(ApiTemplate): | @@ -80,36 +129,56 @@ class Api(ApiTemplate): | ||
80 | table_name = re[0] | 129 | table_name = re[0] |
81 | if table_name not in spatial_tables_names and (not table_name.__contains__("_vacuate_")): | 130 | if table_name not in spatial_tables_names and (not table_name.__contains__("_vacuate_")): |
82 | real_common_tables_name.append(table_name) | 131 | real_common_tables_name.append(table_name) |
83 | - | 132 | + |
84 | # 增加新普通表 | 133 | # 增加新普通表 |
85 | 134 | ||
86 | - self.add_common_table(data_session, database_guid, real_common_tables_name, origin_common_tables_name, | ||
87 | - this_time) | 135 | + self.add_common_table(data_session, sys_session, database_guid, real_common_tables_name, origin_common_tables_name, |
136 | + this_time) | ||
88 | 137 | ||
89 | - | ||
90 | - #删除、修改普通表 | ||
91 | - self.edit_common_table(data_session, database_guid, real_common_tables_name, origin_common_tables_name, | ||
92 | - this_time) | 138 | + # 删除、修改普通表 |
139 | + self.edit_common_table(data_session,sys_session, database_guid, real_common_tables_name, origin_common_tables_name, | ||
140 | + this_time) | ||
93 | 141 | ||
94 | - db.session.commit() | ||
95 | - res["msg"] = "刷新数据成功!" | ||
96 | - res["result"] = True | 142 | + sys_session.commit() |
143 | + result["data"] = "刷新数据成功!" | ||
144 | + result["state"] = 1 | ||
145 | + sys_session.query(Task).filter_by(guid=task_guid).update( | ||
146 | + {"state": 1, "update_time": datetime.datetime.now(),"process":"更新成功"}) | ||
147 | + sys_session.commit() | ||
97 | 148 | ||
98 | except Exception as e: | 149 | except Exception as e: |
99 | - raise e | ||
100 | - | 150 | + try: |
151 | + print(traceback.format_exc()) | ||
152 | + sys_session.query(Task).filter_by(guid=task_guid).update( | ||
153 | + {"state": -1, "update_time": datetime.datetime.now(),"process":"更新失败"}) | ||
154 | + message = "{} {}".format(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), e.__str__()) | ||
155 | + task_process_guid = uuid.uuid1().__str__() | ||
156 | + task_process = Process(guid=task_process_guid, message=message, time=datetime.datetime.now(), | ||
157 | + task_guid=task_guid) | ||
158 | + sys_session.add(task_process) | ||
159 | + sys_session.commit() | ||
160 | + except Exception as ee: | ||
161 | + print(traceback.format_exc()) | ||
101 | finally: | 162 | finally: |
102 | if pg_ds: | 163 | if pg_ds: |
103 | pg_ds.Destroy() | 164 | pg_ds.Destroy() |
104 | if data_session: | 165 | if data_session: |
105 | data_session.close() | 166 | data_session.close() |
106 | - | ||
107 | - return res | ||
108 | - | ||
109 | - | ||
110 | - def add_spatail_table(self,database,pg_ds,spatial_tables_names,db_tables_names,this_time): | ||
111 | - # 更新空间表 | ||
112 | - # 增加表 | 167 | + if sys_session: |
168 | + sys_session.close() | ||
169 | + return result | ||
170 | + | ||
171 | + def add_spatail_table(self,database,pg_ds,sys_session,spatial_tables_names,this_time): | ||
172 | + ''' | ||
173 | + 注册新增空间表 | ||
174 | + :param database: | ||
175 | + :param pg_ds: | ||
176 | + :param spatial_tables_names: 已注册空间表名 | ||
177 | + :param this_time: | ||
178 | + :return: 实体库中空间表名 | ||
179 | + ''' | ||
180 | + | ||
181 | + db_tables_names=[] | ||
113 | 182 | ||
114 | for i in range(pg_ds.GetLayerCount()): | 183 | for i in range(pg_ds.GetLayerCount()): |
115 | layer: Layer = pg_ds.GetLayer(i) | 184 | layer: Layer = pg_ds.GetLayer(i) |
@@ -123,7 +192,7 @@ class Api(ApiTemplate): | @@ -123,7 +192,7 @@ class Api(ApiTemplate): | ||
123 | # 只注册public的空间表,其他表空间的表名会有. | 192 | # 只注册public的空间表,其他表空间的表名会有. |
124 | if layer.GetName().__contains__("."): | 193 | if layer.GetName().__contains__("."): |
125 | continue | 194 | continue |
126 | - | 195 | + # 略过抽稀表 |
127 | if layer.GetName().__contains__("_vacuate_"): | 196 | if layer.GetName().__contains__("_vacuate_"): |
128 | continue | 197 | continue |
129 | 198 | ||
@@ -152,14 +221,13 @@ class Api(ApiTemplate): | @@ -152,14 +221,13 @@ class Api(ApiTemplate): | ||
152 | table_guid = uuid.uuid1().__str__() | 221 | table_guid = uuid.uuid1().__str__() |
153 | table = Table(guid=table_guid, | 222 | table = Table(guid=table_guid, |
154 | database_guid=database.guid, | 223 | database_guid=database.guid, |
155 | - alias=layer.GetName(), | 224 | + # alias=layer.GetName(), |
156 | name=layer.GetName(), create_time=this_time, update_time=this_time, | 225 | name=layer.GetName(), create_time=this_time, update_time=this_time, |
157 | table_type=GeometryAdapter.get_table_type(layer.GetGeomType()), | 226 | table_type=GeometryAdapter.get_table_type(layer.GetGeomType()), |
158 | extent=extent, | 227 | extent=extent, |
159 | feature_count=feature_count | 228 | feature_count=feature_count |
160 | ) | 229 | ) |
161 | - db.session.add(table) | ||
162 | - | 230 | + sys_session.add(table) |
163 | feature_defn: FeatureDefn = layer.GetLayerDefn() | 231 | feature_defn: FeatureDefn = layer.GetLayerDefn() |
164 | 232 | ||
165 | for i in range(feature_defn.GetFieldCount()): | 233 | for i in range(feature_defn.GetFieldCount()): |
@@ -169,9 +237,10 @@ class Api(ApiTemplate): | @@ -169,9 +237,10 @@ class Api(ApiTemplate): | ||
169 | "") else field_defn.GetAlternativeName() | 237 | "") else field_defn.GetAlternativeName() |
170 | column = Columns(guid=uuid.uuid1().__str__(), table_guid=table_guid, | 238 | column = Columns(guid=uuid.uuid1().__str__(), table_guid=table_guid, |
171 | name=field_name, alias=field_alias, create_time=this_time, update_time=this_time) | 239 | name=field_name, alias=field_alias, create_time=this_time, update_time=this_time) |
172 | - db.session.add(column) | 240 | + sys_session.add(column) |
241 | + return db_tables_names | ||
173 | 242 | ||
174 | - def deal_vacuate_table(self,pg_ds,database_guid): | 243 | + def deal_vacuate_table(self,pg_ds,sys_session,database_guid): |
175 | 244 | ||
176 | 245 | ||
177 | for i in range(pg_ds.GetLayerCount()): | 246 | for i in range(pg_ds.GetLayerCount()): |
@@ -198,30 +267,30 @@ class Api(ApiTemplate): | @@ -198,30 +267,30 @@ class Api(ApiTemplate): | ||
198 | except: | 267 | except: |
199 | pass | 268 | pass |
200 | 269 | ||
201 | - base_table =Table.query.filter_by(name=base_layer_name,database_guid=database_guid).one_or_none() | 270 | + base_table =sys_session.query(Table).filter_by(name=base_layer_name,database_guid=database_guid).one_or_none() |
202 | if base_table: | 271 | if base_table: |
203 | - if not TableVacuate.query.filter_by(table_guid=base_table.guid,name=l_name).one_or_none(): | 272 | + if not sys_session.query(TableVacuate).filter_by(table_guid=base_table.guid,name=l_name).one_or_none(): |
204 | table_vacuate = TableVacuate(guid=uuid.uuid1().__str__(), | 273 | table_vacuate = TableVacuate(guid=uuid.uuid1().__str__(), |
205 | table_guid=base_table.guid, | 274 | table_guid=base_table.guid, |
206 | level=level, | 275 | level=level, |
207 | name=l_name, | 276 | name=l_name, |
208 | pixel_distance=float(pixel_distance_str)) | 277 | pixel_distance=float(pixel_distance_str)) |
209 | - db.session.add(table_vacuate) | ||
210 | - Table.query.filter_by(guid=base_table.guid).update({"is_vacuate": 1}) | 278 | + sys_session.add(table_vacuate) |
279 | + | ||
280 | + sys_session.query(Table).filter_by(guid=base_table.guid).update({"is_vacuate": 1}) | ||
211 | else: | 281 | else: |
212 | kk=1 | 282 | kk=1 |
213 | 283 | ||
214 | 284 | ||
215 | 285 | ||
216 | - | ||
217 | - def edit_spatial_table(self,pg_ds,spatial_tables,db_tables_names,this_time): | 286 | + def edit_spatial_table(self,pg_ds,sys_session,spatial_tables,db_tables_names,this_time): |
218 | 287 | ||
219 | for table in spatial_tables: | 288 | for table in spatial_tables: |
220 | 289 | ||
221 | # 删除表 | 290 | # 删除表 |
222 | if table.name not in db_tables_names: | 291 | if table.name not in db_tables_names: |
223 | StructurePrint.print("空间表减少!") | 292 | StructurePrint.print("空间表减少!") |
224 | - db.session.delete(table) | 293 | + sys_session.delete(table) |
225 | # 修改表 | 294 | # 修改表 |
226 | else: | 295 | else: |
227 | layer: Layer = pg_ds.GetLayerByName(table.name) | 296 | layer: Layer = pg_ds.GetLayerByName(table.name) |
@@ -252,15 +321,13 @@ class Api(ApiTemplate): | @@ -252,15 +321,13 @@ class Api(ApiTemplate): | ||
252 | column = Columns(guid=uuid.uuid1().__str__(), table_guid=table.guid, | 321 | column = Columns(guid=uuid.uuid1().__str__(), table_guid=table.guid, |
253 | name=field_name, alias=field_alias, create_time=this_time, | 322 | name=field_name, alias=field_alias, create_time=this_time, |
254 | update_time=this_time) | 323 | update_time=this_time) |
255 | - db.session.add(column) | 324 | + sys_session.add(column) |
256 | 325 | ||
257 | # 删除列 | 326 | # 删除列 |
258 | for column in columns: | 327 | for column in columns: |
259 | if column.name not in db_columns_names: | 328 | if column.name not in db_columns_names: |
260 | StructurePrint.print("{}空间表属性减少!".format(table.name)) | 329 | StructurePrint.print("{}空间表属性减少!".format(table.name)) |
261 | - db.session.delete(column) | ||
262 | - | ||
263 | - | 330 | + sys_session.delete(column) |
264 | 331 | ||
265 | # 范围统计和数量统计以100w为界限 | 332 | # 范围统计和数量统计以100w为界限 |
266 | query_count_layer: Layer = pg_ds.ExecuteSQL( | 333 | query_count_layer: Layer = pg_ds.ExecuteSQL( |
@@ -271,6 +338,7 @@ class Api(ApiTemplate): | @@ -271,6 +338,7 @@ class Api(ApiTemplate): | ||
271 | if feature_count < 1000000: | 338 | if feature_count < 1000000: |
272 | feature_count = layer.GetFeatureCount() | 339 | feature_count = layer.GetFeatureCount() |
273 | ext = layer.GetExtent() | 340 | ext = layer.GetExtent() |
341 | + | ||
274 | else: | 342 | else: |
275 | query_ext_layer: Layer = pg_ds.ExecuteSQL( | 343 | query_ext_layer: Layer = pg_ds.ExecuteSQL( |
276 | "select geometry(ST_EstimatedExtent('public', '{}','{}'))".format(l_name, | 344 | "select geometry(ST_EstimatedExtent('public', '{}','{}'))".format(l_name, |
@@ -285,11 +353,11 @@ class Api(ApiTemplate): | @@ -285,11 +353,11 @@ class Api(ApiTemplate): | ||
285 | # 修改要素量 | 353 | # 修改要素量 |
286 | if not table.feature_count.__eq__(feature_count): | 354 | if not table.feature_count.__eq__(feature_count): |
287 | StructurePrint.print("{}空间表要素!".format(table.name)) | 355 | StructurePrint.print("{}空间表要素!".format(table.name)) |
288 | - Table.query.filter_by(guid=table.guid).update({"feature_count": feature_count, | 356 | + sys_session.query(Table).filter_by(guid=table.guid).update({"feature_count": feature_count, |
289 | "extent": extent}) | 357 | "extent": extent}) |
290 | 358 | ||
291 | 359 | ||
292 | - def add_common_table(self,data_session,database_guid,real_common_tables_name,origin_common_tables_name,this_time): | 360 | + def add_common_table(self,data_session,sys_session,database_guid,real_common_tables_name,origin_common_tables_name,this_time): |
293 | for table_name in real_common_tables_name: | 361 | for table_name in real_common_tables_name: |
294 | if table_name not in origin_common_tables_name: | 362 | if table_name not in origin_common_tables_name: |
295 | StructurePrint.print("{}非空间表增加!".format(table_name)) | 363 | StructurePrint.print("{}非空间表增加!".format(table_name)) |
@@ -303,7 +371,7 @@ class Api(ApiTemplate): | @@ -303,7 +371,7 @@ class Api(ApiTemplate): | ||
303 | feature_count=count | 371 | feature_count=count |
304 | ) | 372 | ) |
305 | 373 | ||
306 | - db.session.add(table) | 374 | + sys_session.add(table) |
307 | 375 | ||
308 | sql = ''' | 376 | sql = ''' |
309 | SELECT | 377 | SELECT |
@@ -325,22 +393,22 @@ class Api(ApiTemplate): | @@ -325,22 +393,22 @@ class Api(ApiTemplate): | ||
325 | for col in cols: | 393 | for col in cols: |
326 | column = Columns(guid=uuid.uuid1().__str__(), table_guid=table_guid, | 394 | column = Columns(guid=uuid.uuid1().__str__(), table_guid=table_guid, |
327 | name=col[1], create_time=this_time, update_time=this_time) | 395 | name=col[1], create_time=this_time, update_time=this_time) |
328 | - db.session.add(column) | 396 | + sys_session.add(column) |
329 | 397 | ||
330 | # 删除不存在的表 | 398 | # 删除不存在的表 |
331 | for n in origin_common_tables_name: | 399 | for n in origin_common_tables_name: |
332 | if n not in real_common_tables_name: | 400 | if n not in real_common_tables_name: |
333 | tables = Table.query.filter_by(name=n).filter_by(database_guid=database_guid).all() | 401 | tables = Table.query.filter_by(name=n).filter_by(database_guid=database_guid).all() |
334 | for table in tables: | 402 | for table in tables: |
335 | - db.session.delete(table) | 403 | + sys_session.delete(table) |
336 | 404 | ||
337 | - def edit_common_table(self,data_session,database_guid,real_common_tables_name,origin_common_tables_name,this_time): | 405 | + def edit_common_table(self,data_session,sys_session,database_guid,real_common_tables_name,origin_common_tables_name,this_time): |
338 | for table_name in origin_common_tables_name: | 406 | for table_name in origin_common_tables_name: |
339 | - tables = Table.query.filter_by(name=table_name).filter_by(database_guid=database_guid).all() | 407 | + tables = sys_session.query(Table).filter_by(name=table_name).filter_by(database_guid=database_guid).all() |
340 | for table in tables: | 408 | for table in tables: |
341 | if table_name not in real_common_tables_name: | 409 | if table_name not in real_common_tables_name: |
342 | StructurePrint.print("{}非空间表减少!".format(table_name)) | 410 | StructurePrint.print("{}非空间表减少!".format(table_name)) |
343 | - db.session.delete(table) | 411 | + sys_session.delete(table) |
344 | # 修改表 | 412 | # 修改表 |
345 | else: | 413 | else: |
346 | columns = table.relate_columns | 414 | columns = table.relate_columns |
@@ -371,13 +439,13 @@ class Api(ApiTemplate): | @@ -371,13 +439,13 @@ class Api(ApiTemplate): | ||
371 | StructurePrint.print("{}表要素属性增加!".format(table_name)) | 439 | StructurePrint.print("{}表要素属性增加!".format(table_name)) |
372 | column = Columns(guid=uuid.uuid1().__str__(), table_guid=table.guid, | 440 | column = Columns(guid=uuid.uuid1().__str__(), table_guid=table.guid, |
373 | name=col, create_time=this_time, update_time=this_time) | 441 | name=col, create_time=this_time, update_time=this_time) |
374 | - db.session.add(column) | 442 | + sys_session.add(column) |
375 | 443 | ||
376 | # 属性减少 | 444 | # 属性减少 |
377 | for column in columns: | 445 | for column in columns: |
378 | if column.name not in real_cols_name: | 446 | if column.name not in real_cols_name: |
379 | StructurePrint.print("{}表要素属性减少!".format(table_name)) | 447 | StructurePrint.print("{}表要素属性减少!".format(table_name)) |
380 | - db.session.delete(column) | 448 | + sys_session.delete(column) |
381 | 449 | ||
382 | # 修改要素量 | 450 | # 修改要素量 |
383 | sql = 'select count(*) from "{}"'.format(table_name) | 451 | sql = 'select count(*) from "{}"'.format(table_name) |
@@ -385,7 +453,7 @@ class Api(ApiTemplate): | @@ -385,7 +453,7 @@ class Api(ApiTemplate): | ||
385 | count = data_session.execute(sql).fetchone()[0] | 453 | count = data_session.execute(sql).fetchone()[0] |
386 | if not table.feature_count.__eq__(count): | 454 | if not table.feature_count.__eq__(count): |
387 | StructurePrint.print("{}表要素变化!".format(table_name)) | 455 | StructurePrint.print("{}表要素变化!".format(table_name)) |
388 | - Table.query.filter_by(guid=table.guid).update({"feature_count": count}) | 456 | + sys_session.query(Table).filter_by(guid=table.guid).update({"feature_count": count}) |
389 | 457 | ||
390 | 458 | ||
391 | 459 |
请
注册
或
登录
后发表评论