正在显示
10 个修改的文件
包含
127 行增加
和
97 行删除
| @@ -107,44 +107,48 @@ class Api(ApiTemplate): | @@ -107,44 +107,48 @@ class Api(ApiTemplate): | ||
| 107 | for i in range(pg_ds.GetLayerCount()): | 107 | for i in range(pg_ds.GetLayerCount()): |
| 108 | layer: Layer = pg_ds.GetLayer(i) | 108 | layer: Layer = pg_ds.GetLayer(i) |
| 109 | l_name = layer.GetName() | 109 | l_name = layer.GetName() |
| 110 | + try: | ||
| 110 | 111 | ||
| 111 | - # 只注册public的空间表,其他表空间的表名会有. | ||
| 112 | - if layer.GetName().__contains__("."): | ||
| 113 | - continue | ||
| 114 | - | ||
| 115 | - # 不注册抽稀表 | ||
| 116 | - if layer.GetName().__contains__("_vacuate_"): | ||
| 117 | - spatial_table_name.append(layer.GetName()) | ||
| 118 | - continue | 112 | + # 只注册public的空间表,其他表空间的表名会有. |
| 113 | + if layer.GetName().__contains__("."): | ||
| 114 | + continue | ||
| 119 | 115 | ||
| 120 | - # 没有权限的表跳过 | ||
| 121 | - if not PGUtil.check_table_privilege(l_name,"SELECT",db_tuple[0],pg_ds): | ||
| 122 | - StructurePrint.print("用户{}对表{}没有select权限!".format(db_tuple[0],l_name),"warn") | ||
| 123 | - continue | 116 | + # 不注册抽稀表 |
| 117 | + if layer.GetName().__contains__("_vacuate_"): | ||
| 118 | + spatial_table_name.append(layer.GetName()) | ||
| 119 | + continue | ||
| 124 | 120 | ||
| 125 | - # 范围统计和数量统计以100w为界限 | ||
| 126 | - query_count_layer: Layer = pg_ds.ExecuteSQL( | ||
| 127 | - '''SELECT reltuples::bigint AS ec FROM pg_class WHERE oid = 'public."{}"'::regclass'''.format(l_name)) | 121 | + # 没有权限的表跳过 |
| 122 | + if not PGUtil.check_table_privilege(l_name,"SELECT",db_tuple[0],pg_ds): | ||
| 123 | + StructurePrint.print("用户{}对表{}没有select权限!".format(db_tuple[0],l_name),"warn") | ||
| 124 | + continue | ||
| 128 | 125 | ||
| 129 | - feature_count = query_count_layer.GetFeature(0).GetField("ec") | ||
| 130 | - # 要素少于100w可以精确统计 | ||
| 131 | - if feature_count < 1000000: | ||
| 132 | - feature_count = layer.GetFeatureCount() | ||
| 133 | - ext = layer.GetExtent() | ||
| 134 | - else: | ||
| 135 | - query_ext_layer: Layer = pg_ds.ExecuteSQL( | ||
| 136 | - "select geometry(ST_EstimatedExtent('public', '{}','{}'))".format(l_name, | ||
| 137 | - layer.GetGeometryColumn())) | ||
| 138 | - ext = query_ext_layer.GetExtent() | ||
| 139 | - if ext[0] < 360: | ||
| 140 | - ext = [round(e, 6) for e in ext] | ||
| 141 | - else: | ||
| 142 | - ext = [round(e, 2) for e in ext] | ||
| 143 | - extent = "{},{},{},{}".format(ext[0], ext[1], ext[2], ext[3]) | 126 | + # 范围统计和数量统计以100w为界限 |
| 127 | + query_count_layer: Layer = pg_ds.ExecuteSQL( | ||
| 128 | + '''SELECT reltuples::bigint AS ec FROM pg_class WHERE oid = 'public."{}"'::regclass'''.format(l_name)) | ||
| 129 | + | ||
| 130 | + feature_count = query_count_layer.GetFeature(0).GetField("ec") | ||
| 131 | + # 要素少于100w可以精确统计 | ||
| 132 | + if feature_count < 1000000: | ||
| 133 | + feature_count = layer.GetFeatureCount() | ||
| 134 | + ext = layer.GetExtent() | ||
| 135 | + else: | ||
| 136 | + query_ext_layer: Layer = pg_ds.ExecuteSQL( | ||
| 137 | + "select geometry(ST_EstimatedExtent('public', '{}','{}'))".format(l_name, | ||
| 138 | + layer.GetGeometryColumn())) | ||
| 139 | + ext = query_ext_layer.GetExtent() | ||
| 140 | + if ext[0] < 360: | ||
| 141 | + ext = [round(e, 6) for e in ext] | ||
| 142 | + else: | ||
| 143 | + ext = [round(e, 2) for e in ext] | ||
| 144 | + extent = "{},{},{},{}".format(ext[0], ext[1], ext[2], ext[3]) | ||
| 144 | 145 | ||
| 145 | - table_guid = uuid.uuid1().__str__() | 146 | + table_guid = uuid.uuid1().__str__() |
| 146 | 147 | ||
| 147 | - geom_type = GeometryAdapter.get_geometry_type(layer) | 148 | + geom_type = GeometryAdapter.get_geometry_type(layer) |
| 149 | + except: | ||
| 150 | + StructurePrint.print("表{}注册失败!".format(l_name), "warn") | ||
| 151 | + continue | ||
| 148 | 152 | ||
| 149 | table = Table(guid=table_guid, | 153 | table = Table(guid=table_guid, |
| 150 | database_guid=database.guid, | 154 | database_guid=database.guid, |
| @@ -14,12 +14,15 @@ from app.models import db | @@ -14,12 +14,15 @@ from app.models import db | ||
| 14 | from app.util.component.ApiTemplate import ApiTemplate | 14 | from app.util.component.ApiTemplate import ApiTemplate |
| 15 | 15 | ||
| 16 | from app.util.component.PGUtil import PGUtil | 16 | from app.util.component.PGUtil import PGUtil |
| 17 | +import configure | ||
| 18 | +from flask import current_app | ||
| 17 | class Api(ApiTemplate): | 19 | class Api(ApiTemplate): |
| 18 | api_name = "删除表" | 20 | api_name = "删除表" |
| 19 | def process(self): | 21 | def process(self): |
| 20 | 22 | ||
| 21 | res = {} | 23 | res = {} |
| 22 | pg_ds = None | 24 | pg_ds = None |
| 25 | + sys_ds = None | ||
| 23 | try: | 26 | try: |
| 24 | 27 | ||
| 25 | table_guid = self.para.get("guid") | 28 | table_guid = self.para.get("guid") |
| @@ -45,14 +48,22 @@ class Api(ApiTemplate): | @@ -45,14 +48,22 @@ class Api(ApiTemplate): | ||
| 45 | 48 | ||
| 46 | 49 | ||
| 47 | pg_ds: DataSource = PGUtil.open_pg_data_source(1, DES.decode(database.sqlalchemy_uri)) | 50 | pg_ds: DataSource = PGUtil.open_pg_data_source(1, DES.decode(database.sqlalchemy_uri)) |
| 48 | - | 51 | + sys_ds: DataSource = PGUtil.open_pg_data_source(1, configure.SQLALCHEMY_DATABASE_URI) |
| 49 | 52 | ||
| 50 | #删除抽稀表 | 53 | #删除抽稀表 |
| 51 | vacuate_tables=table.relate_table_vacuates.all() | 54 | vacuate_tables=table.relate_table_vacuates.all() |
| 52 | for vt in vacuate_tables: | 55 | for vt in vacuate_tables: |
| 53 | - pg_ds.DeleteLayer(vt.name) | 56 | + db.session.delete(vt) |
| 57 | + try: | ||
| 58 | + sys_ds.DeleteLayer(vt.name) | ||
| 59 | + except: | ||
| 60 | + current_app.logger.warning("{}不存在!".format(vt.name)) | ||
| 61 | + | ||
| 62 | + try: | ||
| 63 | + pg_ds.DeleteLayer(table.name) | ||
| 64 | + except: | ||
| 65 | + current_app.logger.warning("{}不存在!".format(table.name)) | ||
| 54 | 66 | ||
| 55 | - pg_ds.DeleteLayer(table.name) | ||
| 56 | 67 | ||
| 57 | # 删除元数据 | 68 | # 删除元数据 |
| 58 | 69 | ||
| @@ -65,6 +76,8 @@ class Api(ApiTemplate): | @@ -65,6 +76,8 @@ class Api(ApiTemplate): | ||
| 65 | finally: | 76 | finally: |
| 66 | if pg_ds: | 77 | if pg_ds: |
| 67 | pg_ds.Destroy() | 78 | pg_ds.Destroy() |
| 79 | + if sys_ds: | ||
| 80 | + sys_ds.Destroy() | ||
| 68 | return res | 81 | return res |
| 69 | 82 | ||
| 70 | api_doc={ | 83 | api_doc={ |
| @@ -13,10 +13,10 @@ class Api(ApiTemplate): | @@ -13,10 +13,10 @@ class Api(ApiTemplate): | ||
| 13 | res = {} | 13 | res = {} |
| 14 | try: | 14 | try: |
| 15 | table_guid = self.para.get("guid") | 15 | table_guid = self.para.get("guid") |
| 16 | - table = Table.query.filter_by(guid=table_guid) | ||
| 17 | - if not table.one_or_none(): | 16 | + table = Table.query.filter_by(guid=table_guid).one_or_none() |
| 17 | + if not table: | ||
| 18 | raise Exception("数据不存在!") | 18 | raise Exception("数据不存在!") |
| 19 | - table = table.one_or_none() | 19 | + |
| 20 | columns = table.relate_columns.order_by(Columns.name).all() | 20 | columns = table.relate_columns.order_by(Columns.name).all() |
| 21 | res["data"]=ModelVisitor.table_to_json(table) | 21 | res["data"]=ModelVisitor.table_to_json(table) |
| 22 | res["data"]["columns"] = ModelVisitor.objects_to_jsonarray(columns) | 22 | res["data"]["columns"] = ModelVisitor.objects_to_jsonarray(columns) |
| @@ -189,43 +189,47 @@ class Api(ApiTemplate): | @@ -189,43 +189,47 @@ class Api(ApiTemplate): | ||
| 189 | if layer.GetName() not in spatial_tables_names: | 189 | if layer.GetName() not in spatial_tables_names: |
| 190 | l_name = layer.GetName() | 190 | l_name = layer.GetName() |
| 191 | 191 | ||
| 192 | - # 只注册public的空间表,其他表空间的表名会有. | ||
| 193 | - if layer.GetName().__contains__("."): | ||
| 194 | - continue | ||
| 195 | - # 略过抽稀表 | ||
| 196 | - if layer.GetName().__contains__("_vacuate_"): | ||
| 197 | - continue | ||
| 198 | - | ||
| 199 | - # 没有权限的表跳过 | ||
| 200 | - if not PGUtil.check_table_privilege(l_name, "SELECT", db_tuple[0], pg_ds): | ||
| 201 | - StructurePrint.print("用户{}对表{}没有select权限!".format(db_tuple[0], l_name), "warn") | ||
| 202 | - continue | ||
| 203 | - | ||
| 204 | - | ||
| 205 | - # 范围统计和数量统计以100w为界限 | ||
| 206 | - query_count_layer: Layer = pg_ds.ExecuteSQL( | ||
| 207 | - '''SELECT reltuples::bigint AS ec FROM pg_class WHERE oid = 'public."{}"'::regclass'''.format( | ||
| 208 | - l_name)) | 192 | + try: |
| 193 | + # 只注册public的空间表,其他表空间的表名会有. | ||
| 194 | + if layer.GetName().__contains__("."): | ||
| 195 | + continue | ||
| 196 | + # 略过抽稀表 | ||
| 197 | + if layer.GetName().__contains__("_vacuate_"): | ||
| 198 | + continue | ||
| 209 | 199 | ||
| 210 | - feature_count = query_count_layer.GetFeature(0).GetField("ec") | ||
| 211 | - # 要素少于100w可以精确统计 | ||
| 212 | - if feature_count < 1000000: | ||
| 213 | - feature_count = layer.GetFeatureCount() | ||
| 214 | - ext = layer.GetExtent() | ||
| 215 | - else: | ||
| 216 | - query_ext_layer: Layer = pg_ds.ExecuteSQL( | ||
| 217 | - "select geometry(ST_EstimatedExtent('public', '{}','{}'))".format(l_name, | ||
| 218 | - layer.GetGeometryColumn())) | ||
| 219 | - ext = query_ext_layer.GetExtent() | ||
| 220 | - if ext[0] < 360: | ||
| 221 | - ext = [round(e, 6) for e in ext] | ||
| 222 | - else: | ||
| 223 | - ext = [round(e, 2) for e in ext] | ||
| 224 | - extent = "{},{},{},{}".format(ext[0], ext[1], ext[2], ext[3]) | 200 | + # 没有权限的表跳过 |
| 201 | + if not PGUtil.check_table_privilege(l_name, "SELECT", db_tuple[0], pg_ds): | ||
| 202 | + StructurePrint.print("用户{}对表{}没有select权限!".format(db_tuple[0], l_name), "warn") | ||
| 203 | + continue | ||
| 225 | 204 | ||
| 226 | - StructurePrint.print("空间表增加!") | ||
| 227 | 205 | ||
| 228 | - geom_type = GeometryAdapter.get_geometry_type(layer) | 206 | + # 范围统计和数量统计以100w为界限 |
| 207 | + query_count_layer: Layer = pg_ds.ExecuteSQL( | ||
| 208 | + '''SELECT reltuples::bigint AS ec FROM pg_class WHERE oid = 'public."{}"'::regclass'''.format( | ||
| 209 | + l_name)) | ||
| 210 | + | ||
| 211 | + feature_count = query_count_layer.GetFeature(0).GetField("ec") | ||
| 212 | + # 要素少于100w可以精确统计 | ||
| 213 | + if feature_count < 1000000: | ||
| 214 | + feature_count = layer.GetFeatureCount() | ||
| 215 | + ext = layer.GetExtent() | ||
| 216 | + else: | ||
| 217 | + query_ext_layer: Layer = pg_ds.ExecuteSQL( | ||
| 218 | + "select geometry(ST_EstimatedExtent('public', '{}','{}'))".format(l_name, | ||
| 219 | + layer.GetGeometryColumn())) | ||
| 220 | + ext = query_ext_layer.GetExtent() | ||
| 221 | + if ext[0] < 360: | ||
| 222 | + ext = [round(e, 6) for e in ext] | ||
| 223 | + else: | ||
| 224 | + ext = [round(e, 2) for e in ext] | ||
| 225 | + extent = "{},{},{},{}".format(ext[0], ext[1], ext[2], ext[3]) | ||
| 226 | + | ||
| 227 | + StructurePrint.print("空间表增加!") | ||
| 228 | + | ||
| 229 | + geom_type = GeometryAdapter.get_geometry_type(layer) | ||
| 230 | + except: | ||
| 231 | + StructurePrint.print("表{}注册失败!".format(l_name), "warn") | ||
| 232 | + continue | ||
| 229 | 233 | ||
| 230 | table_guid = uuid.uuid1().__str__() | 234 | table_guid = uuid.uuid1().__str__() |
| 231 | table = Table(guid=table_guid, | 235 | table = Table(guid=table_guid, |
| @@ -293,8 +293,8 @@ class VacuateProcess: | @@ -293,8 +293,8 @@ class VacuateProcess: | ||
| 293 | 293 | ||
| 294 | v_ln = "z{}_vacuate_{}_{}".format(table_guid,lev, grid_name) | 294 | v_ln = "z{}_vacuate_{}_{}".format(table_guid,lev, grid_name) |
| 295 | vl = pg.CreateLayer(v_ln, layer.GetSpatialRef(),ogr.wkbUnknown, options) | 295 | vl = pg.CreateLayer(v_ln, layer.GetSpatialRef(),ogr.wkbUnknown, options) |
| 296 | - # 抽稀表不需要属性 | ||
| 297 | - # vl.CreateFields(schema) | 296 | + # 抽稀表需要属性 |
| 297 | + vl.CreateFields(layer.schema) | ||
| 298 | self.vacuate_layers[l] = vl | 298 | self.vacuate_layers[l] = vl |
| 299 | 299 | ||
| 300 | else: | 300 | else: |
| @@ -165,19 +165,20 @@ def clip(): | @@ -165,19 +165,20 @@ def clip(): | ||
| 165 | raise Exception("打开数据失败!") | 165 | raise Exception("打开数据失败!") |
| 166 | 166 | ||
| 167 | output_ds: DataSource = shp_driver.CreateDataSource(output) | 167 | output_ds: DataSource = shp_driver.CreateDataSource(output) |
| 168 | - | ||
| 169 | - out_layer: Layer = output_ds.CreateLayer(layer.GetName(), layer.GetSpatialRef(), layer.GetGeomType()) | ||
| 170 | - out_layer.CreateFields(layer.schema) | 168 | + # |
| 169 | + # out_layer: Layer = output_ds.CreateLayer(layer.GetName(), layer.GetSpatialRef(), layer.GetGeomType()) | ||
| 170 | + # out_layer.CreateFields(layer.schema) | ||
| 171 | for f in layer: | 171 | for f in layer: |
| 172 | - new_f = copy.copy(f) | 172 | + new_f:Feature = copy.copy(f) |
| 173 | out_g = f.GetGeometryRef() | 173 | out_g = f.GetGeometryRef() |
| 174 | if out_g.Intersect(bound_geo): | 174 | if out_g.Intersect(bound_geo): |
| 175 | out_g = out_g.Intersection(bound_geo) | 175 | out_g = out_g.Intersection(bound_geo) |
| 176 | new_f.SetGeometry(out_g) | 176 | new_f.SetGeometry(out_g) |
| 177 | + new_f.SetField("ttt",1) | ||
| 177 | # new_f.UnsetField("OBJECTID") | 178 | # new_f.UnsetField("OBJECTID") |
| 178 | - out_layer.CreateFeature(new_f) | 179 | + # out_layer.CreateFeature(new_f) |
| 179 | 180 | ||
| 180 | - output_ds.Destroy() | 181 | + # output_ds.Destroy() |
| 181 | 182 | ||
| 182 | 183 | ||
| 183 | 184 | ||
| @@ -186,7 +187,7 @@ if __name__ == '__main__': | @@ -186,7 +187,7 @@ if __name__ == '__main__': | ||
| 186 | # input = r"E:\Data\copy\origin.shp" | 187 | # input = r"E:\Data\copy\origin.shp" |
| 187 | # output = r"E:\Data\copy\re.shp" | 188 | # output = r"E:\Data\copy\re.shp" |
| 188 | # copydata(bound_shp,input,output) | 189 | # copydata(bound_shp,input,output) |
| 189 | - | 190 | + # |
| 190 | # bound_shp = "/root/CopyData/gdsample.shp" | 191 | # bound_shp = "/root/CopyData/gdsample.shp" |
| 191 | # input = r"/root/CopyData/origin.shp" | 192 | # input = r"/root/CopyData/origin.shp" |
| 192 | # output = r"/root/CopyData/re.gdb" | 193 | # output = r"/root/CopyData/re.gdb" |
| @@ -157,7 +157,7 @@ class EntryDataVacuate: | @@ -157,7 +157,7 @@ class EntryDataVacuate: | ||
| 157 | 157 | ||
| 158 | # this_task.pg_ds.StartTransaction() | 158 | # this_task.pg_ds.StartTransaction() |
| 159 | new_layer_name = None | 159 | new_layer_name = None |
| 160 | - vacuate_process= None | 160 | + # vacuate_process= None |
| 161 | success = True | 161 | success = True |
| 162 | table_guid = uuid.uuid1().__str__() | 162 | table_guid = uuid.uuid1().__str__() |
| 163 | try: | 163 | try: |
| @@ -200,7 +200,7 @@ class EntryDataVacuate: | @@ -200,7 +200,7 @@ class EntryDataVacuate: | ||
| 200 | pg_layer.CreateFields(schema) | 200 | pg_layer.CreateFields(schema) |
| 201 | 201 | ||
| 202 | #创建抽稀过程 | 202 | #创建抽稀过程 |
| 203 | - vacuate_process = VacuateProcess(layer,table_guid,options) | 203 | + # vacuate_process = VacuateProcess(layer,table_guid,options) |
| 204 | 204 | ||
| 205 | 205 | ||
| 206 | 206 | ||
| @@ -229,17 +229,18 @@ class EntryDataVacuate: | @@ -229,17 +229,18 @@ class EntryDataVacuate: | ||
| 229 | pg_layer.CreateFeature(out_feature) | 229 | pg_layer.CreateFeature(out_feature) |
| 230 | 230 | ||
| 231 | #插入抽稀图层 | 231 | #插入抽稀图层 |
| 232 | - if out_geom is not None: | ||
| 233 | - vacuate_process.vacuate(out_geom) | 232 | + # if out_geom is not None: |
| 233 | + # vacuate_process.vacuate(out_geom) | ||
| 234 | 234 | ||
| 235 | # 注册图层信息 | 235 | # 注册图层信息 |
| 236 | # 是否抽吸过 | 236 | # 是否抽吸过 |
| 237 | - is_vacuate = 1 if vacuate_process.max_level>0 else 0 | 237 | + # is_vacuate = 1 if vacuate_process.max_level>0 else 0 |
| 238 | + is_vacuate = 0 | ||
| 238 | 239 | ||
| 239 | this_task.register_table(pg_layer,new_layer_name,overwrite,parameter.get("creator"),is_vacuate,table_guid) | 240 | this_task.register_table(pg_layer,new_layer_name,overwrite,parameter.get("creator"),is_vacuate,table_guid) |
| 240 | 241 | ||
| 241 | # 注册抽稀表 | 242 | # 注册抽稀表 |
| 242 | - this_task.register_table_vacuate(table_guid,vacuate_process.vacuate_layers) | 243 | + # this_task.register_table_vacuate(table_guid,vacuate_process.vacuate_layers) |
| 243 | 244 | ||
| 244 | this_task.write_process("{}图层入库成功。".format(new_layer_name)) | 245 | this_task.write_process("{}图层入库成功。".format(new_layer_name)) |
| 245 | 246 | ||
| @@ -249,11 +250,12 @@ class EntryDataVacuate: | @@ -249,11 +250,12 @@ class EntryDataVacuate: | ||
| 249 | StructurePrint.print("{}入库失败,数据回滚!原因:{}".format(new_layer_name,e.__str__()), "error") | 250 | StructurePrint.print("{}入库失败,数据回滚!原因:{}".format(new_layer_name,e.__str__()), "error") |
| 250 | print(traceback.format_exc()) | 251 | print(traceback.format_exc()) |
| 251 | # 抽稀回滚 | 252 | # 抽稀回滚 |
| 252 | - vacuate_process.rollback() | 253 | + # vacuate_process.rollback() |
| 253 | success =False | 254 | success =False |
| 254 | 255 | ||
| 255 | finally: | 256 | finally: |
| 256 | - vacuate_process.end() | 257 | + # vacuate_process.end() |
| 258 | + pass | ||
| 257 | return success,new_layer_name | 259 | return success,new_layer_name |
| 258 | 260 | ||
| 259 | 261 | ||
| @@ -516,8 +518,8 @@ class VacuateProcess: | @@ -516,8 +518,8 @@ class VacuateProcess: | ||
| 516 | 518 | ||
| 517 | v_ln = "z{}_vacuate_{}_{}".format(table_guid, self.t_grid_size.index(this_grid_len), grid_name) | 519 | v_ln = "z{}_vacuate_{}_{}".format(table_guid, self.t_grid_size.index(this_grid_len), grid_name) |
| 518 | vl = pg.CreateLayer(v_ln, layer.GetSpatialRef(),ogr.wkbUnknown, options) | 520 | vl = pg.CreateLayer(v_ln, layer.GetSpatialRef(),ogr.wkbUnknown, options) |
| 519 | - # 抽稀表不需要属性 | ||
| 520 | - # vl.CreateFields(schema) | 521 | + # 抽稀表需要属性 |
| 522 | + vl.CreateFields(layer.schema) | ||
| 521 | self.vacuate_layers[l] = vl | 523 | self.vacuate_layers[l] = vl |
| 522 | 524 | ||
| 523 | else: | 525 | else: |
| @@ -3,11 +3,17 @@ | @@ -3,11 +3,17 @@ | ||
| 3 | #createtime: 2021/5/17 | 3 | #createtime: 2021/5/17 |
| 4 | #email: nheweijun@sina.com | 4 | #email: nheweijun@sina.com |
| 5 | import datetime | 5 | import datetime |
| 6 | - | 6 | +import os |
| 7 | 7 | ||
| 8 | class StructurePrint: | 8 | class StructurePrint: |
| 9 | 9 | ||
| 10 | + log_file = os.path.join(os.path.dirname( | ||
| 11 | + os.path.dirname( | ||
| 12 | + os.path.dirname( | ||
| 13 | + os.path.dirname( | ||
| 14 | + os.path.realpath(__file__))))), "logs", "log.txt") | ||
| 10 | @classmethod | 15 | @classmethod |
| 11 | def print(cls,mes, type="info"): | 16 | def print(cls,mes, type="info"): |
| 12 | - message = "[{}] {} {}".format(type.upper(), datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), mes) | ||
| 13 | - print(message) | 17 | + with open(cls.log_file,"a",encoding="utf-8") as f: |
| 18 | + message = "[{}] {} {}\n".format(type.upper(), datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), mes) | ||
| 19 | + f.write(message) |
| @@ -4,9 +4,11 @@ | @@ -4,9 +4,11 @@ | ||
| 4 | deploy_ip_host = "172.26.99.160:8840" | 4 | deploy_ip_host = "172.26.99.160:8840" |
| 5 | # 系统数据库 | 5 | # 系统数据库 |
| 6 | 6 | ||
| 7 | -# SQLALCHEMY_DATABASE_URI = "postgresql://postgres:postgres@172.26.40.254:5433/dmap_dms_test" | ||
| 8 | SQLALCHEMY_DATABASE_URI = "postgresql://postgres:chinadci@172.26.99.160:5432/dmap_dms_test" | 7 | SQLALCHEMY_DATABASE_URI = "postgresql://postgres:chinadci@172.26.99.160:5432/dmap_dms_test" |
| 9 | 8 | ||
| 9 | +# 指定精华表所在位置(必须为空间库),设置为None则存放在各自的实体库中 | ||
| 10 | +VACUATE_DB_URI = None | ||
| 11 | +# VACUATE_DB_URI = SQLALCHEMY_DATABASE_URI | ||
| 10 | 12 | ||
| 11 | # 部署模式cluster,standalone | 13 | # 部署模式cluster,standalone |
| 12 | deployment_mode = "cluster" | 14 | deployment_mode = "cluster" |
请
注册
或
登录
后发表评论