正在显示
6 个修改的文件
包含
43 行增加
和
22 行删除
| ... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 | #email: nheweijun@sina.com |
| 5 | 5 | |
| 6 | 6 | |
| 7 | -from app.models import Database,db,Table,TableVacuate | |
| 7 | +from app.models import Database,db,Table,TableVacuate,DES | |
| 8 | 8 | |
| 9 | 9 | |
| 10 | 10 | from app.util.component.ApiTemplate import ApiTemplate |
| ... | ... | @@ -16,11 +16,15 @@ class Api(ApiTemplate): |
| 16 | 16 | api_name = "删除数据库" |
| 17 | 17 | def process(self): |
| 18 | 18 | re ={} |
| 19 | - sys_ds = None | |
| 19 | + va_ds = None | |
| 20 | 20 | try: |
| 21 | 21 | |
| 22 | 22 | database = db.session.query(Database).filter_by(guid=self.para.get("guid")).one_or_none() |
| 23 | - sys_ds :DataSource= PGUtil.open_pg_data_source(1,configure.SQLALCHEMY_DATABASE_URI) | |
| 23 | + if configure.VACUATE_DB_URI: | |
| 24 | + va_ds: DataSource = PGUtil.open_pg_data_source(1, configure.VACUATE_DB_URI) | |
| 25 | + else: | |
| 26 | + va_ds: DataSource = PGUtil.open_pg_data_source(1, DES.decode(database.sqlalchemy_uri)) | |
| 27 | + | |
| 24 | 28 | if database: |
| 25 | 29 | # 删除table |
| 26 | 30 | re_tables = Table.query.filter_by(database_guid=database.guid).all() |
| ... | ... | @@ -29,7 +33,7 @@ class Api(ApiTemplate): |
| 29 | 33 | for tv in re_tvs: |
| 30 | 34 | db.session.delete(tv) |
| 31 | 35 | try: |
| 32 | - sys_ds.DeleteLayer(tv.name) | |
| 36 | + va_ds.DeleteLayer(tv.name) | |
| 33 | 37 | except: |
| 34 | 38 | current_app.logger.warning("{}不存在".format(tv.name)) |
| 35 | 39 | db.session.delete(table) |
| ... | ... | @@ -43,11 +47,11 @@ class Api(ApiTemplate): |
| 43 | 47 | re["msg"] = "数据库不存在!" |
| 44 | 48 | except Exception as e: |
| 45 | 49 | db.session.rollback() |
| 46 | - sys_ds.RollbackTransaction() | |
| 50 | + va_ds.RollbackTransaction() | |
| 47 | 51 | raise e |
| 48 | 52 | finally: |
| 49 | - if sys_ds: | |
| 50 | - sys_ds.Destroy() | |
| 53 | + if va_ds: | |
| 54 | + va_ds.Destroy() | |
| 51 | 55 | return re |
| 52 | 56 | |
| 53 | 57 | ... | ... |
| ... | ... | @@ -22,7 +22,7 @@ class Api(ApiTemplate): |
| 22 | 22 | |
| 23 | 23 | res = {} |
| 24 | 24 | pg_ds = None |
| 25 | - sys_ds = None | |
| 25 | + va_ds = None | |
| 26 | 26 | try: |
| 27 | 27 | |
| 28 | 28 | table_guid = self.para.get("guid") |
| ... | ... | @@ -48,14 +48,19 @@ class Api(ApiTemplate): |
| 48 | 48 | |
| 49 | 49 | |
| 50 | 50 | pg_ds: DataSource = PGUtil.open_pg_data_source(1, DES.decode(database.sqlalchemy_uri)) |
| 51 | - sys_ds: DataSource = PGUtil.open_pg_data_source(1, configure.SQLALCHEMY_DATABASE_URI) | |
| 51 | + | |
| 52 | + if configure.VACUATE_DB_URI: | |
| 53 | + va_ds: DataSource = PGUtil.open_pg_data_source(1, configure.VACUATE_DB_URI) | |
| 54 | + else: | |
| 55 | + va_ds: DataSource = PGUtil.open_pg_data_source(1, DES.decode(database.sqlalchemy_uri)) | |
| 56 | + | |
| 52 | 57 | |
| 53 | 58 | #删除抽稀表 |
| 54 | 59 | vacuate_tables=table.relate_table_vacuates.all() |
| 55 | 60 | for vt in vacuate_tables: |
| 56 | 61 | db.session.delete(vt) |
| 57 | 62 | try: |
| 58 | - sys_ds.DeleteLayer(vt.name) | |
| 63 | + va_ds.DeleteLayer(vt.name) | |
| 59 | 64 | except: |
| 60 | 65 | current_app.logger.warning("{}不存在!".format(vt.name)) |
| 61 | 66 | |
| ... | ... | @@ -76,8 +81,8 @@ class Api(ApiTemplate): |
| 76 | 81 | finally: |
| 77 | 82 | if pg_ds: |
| 78 | 83 | pg_ds.Destroy() |
| 79 | - if sys_ds: | |
| 80 | - sys_ds.Destroy() | |
| 84 | + if va_ds: | |
| 85 | + va_ds.Destroy() | |
| 81 | 86 | return res |
| 82 | 87 | |
| 83 | 88 | api_doc={ | ... | ... |
| ... | ... | @@ -132,7 +132,7 @@ class Api(ApiTemplate): |
| 132 | 132 | |
| 133 | 133 | layer = pg_ds.GetLayerByName(table.name) |
| 134 | 134 | |
| 135 | - vacuate_process:VacuateProcess = VacuateProcess(layer, table.guid, options) | |
| 135 | + vacuate_process:VacuateProcess = VacuateProcess(layer, table.guid, options,database.sqlalchemy_uri) | |
| 136 | 136 | |
| 137 | 137 | |
| 138 | 138 | for feature in layer: | ... | ... |
| ... | ... | @@ -27,7 +27,7 @@ class Api(ApiTemplate): |
| 27 | 27 | res = {} |
| 28 | 28 | res["data"] = {} |
| 29 | 29 | pg_ds = None |
| 30 | - sys_ds = None | |
| 30 | + va_ds = None | |
| 31 | 31 | try: |
| 32 | 32 | table_guid = self.para.get("guid") |
| 33 | 33 | table: Table = Table.query.filter_by(guid=table_guid).one_or_none() |
| ... | ... | @@ -42,7 +42,12 @@ class Api(ApiTemplate): |
| 42 | 42 | |
| 43 | 43 | # 判断图层是否存在 |
| 44 | 44 | pg_ds :DataSource= PGUtil.open_pg_data_source(0,DES.decode(table.relate_database.sqlalchemy_uri)) |
| 45 | - sys_ds :DataSource= PGUtil.open_pg_data_source(0,configure.SQLALCHEMY_DATABASE_URI) | |
| 45 | + | |
| 46 | + if configure.VACUATE_DB_URI: | |
| 47 | + va_ds: DataSource = PGUtil.open_pg_data_source(1, configure.VACUATE_DB_URI) | |
| 48 | + else: | |
| 49 | + va_ds: DataSource = PGUtil.open_pg_data_source(1,DES.decode(table.relate_database.sqlalchemy_uri)) | |
| 50 | + | |
| 46 | 51 | |
| 47 | 52 | layer = pg_ds.GetLayerByName(table.name) |
| 48 | 53 | |
| ... | ... | @@ -56,7 +61,7 @@ class Api(ApiTemplate): |
| 56 | 61 | for tv in tvs : |
| 57 | 62 | db.session.delete(tv) |
| 58 | 63 | try: |
| 59 | - sys_ds.DeleteLayer(tv.name) | |
| 64 | + va_ds.DeleteLayer(tv.name) | |
| 60 | 65 | except Exception as e : |
| 61 | 66 | current_app.logger.warning("抽稀图层不存在!") |
| 62 | 67 | db.session.commit() |
| ... | ... | @@ -67,8 +72,8 @@ class Api(ApiTemplate): |
| 67 | 72 | finally: |
| 68 | 73 | if pg_ds: |
| 69 | 74 | pg_ds.Destroy() |
| 70 | - if sys_ds: | |
| 71 | - sys_ds.Destroy() | |
| 75 | + if va_ds: | |
| 76 | + va_ds.Destroy() | |
| 72 | 77 | return res |
| 73 | 78 | |
| 74 | 79 | ... | ... |
| ... | ... | @@ -258,8 +258,12 @@ class VacuateProcess: |
| 258 | 258 | # 创建抽稀ds |
| 259 | 259 | for l in range(self.max_level): |
| 260 | 260 | |
| 261 | - pg_ds_l: DataSource = PGUtil.open_pg_data_source(1, configure.SQLALCHEMY_DATABASE_URI) | |
| 262 | - # pg_ds_l: DataSource = PGUtil.open_pg_data_source(1, DES.decode(sqlalchemy_uri)) | |
| 261 | + if configure.VACUATE_DB_URI: | |
| 262 | + pg_ds_l: DataSource = PGUtil.open_pg_data_source(1, configure.VACUATE_DB_URI) | |
| 263 | + else: | |
| 264 | + pg_ds_l: DataSource = PGUtil.open_pg_data_source(1, DES.decode(sqlalchemy_uri)) | |
| 265 | + | |
| 266 | + | |
| 263 | 267 | pg_ds_l.StartTransaction() |
| 264 | 268 | self.pg_ds_dict[l] = pg_ds_l |
| 265 | 269 | ... | ... |
| ... | ... | @@ -422,7 +422,7 @@ class VacuateProcess: |
| 422 | 422 | this_gridsize=[] |
| 423 | 423 | |
| 424 | 424 | |
| 425 | - def __init__(self,layer:Layer,table_guid, options): | |
| 425 | + def __init__(self,layer:Layer,table_guid, options,sqlalchemy_uri): | |
| 426 | 426 | |
| 427 | 427 | #是空间图层才初始化 |
| 428 | 428 | if layer.GetExtent()[0] > 0 or layer.GetExtent()[0] < 0: |
| ... | ... | @@ -487,7 +487,10 @@ class VacuateProcess: |
| 487 | 487 | # 创建抽稀ds |
| 488 | 488 | for l in range(self.max_level): |
| 489 | 489 | # pg_ds_l: DataSource = PGUtil.open_pg_data_source(1, DES.decode(sqlalchemy_uri)) |
| 490 | - pg_ds_l: DataSource = PGUtil.open_pg_data_source(1, configure.SQLALCHEMY_DATABASE_URI) | |
| 490 | + if configure.VACUATE_DB_URI: | |
| 491 | + pg_ds_l: DataSource = PGUtil.open_pg_data_source(1, configure.VACUATE_DB_URI) | |
| 492 | + else: | |
| 493 | + pg_ds_l: DataSource = PGUtil.open_pg_data_source(1, DES.decode(sqlalchemy_uri)) | |
| 491 | 494 | pg_ds_l.StartTransaction() |
| 492 | 495 | self.pg_ds_dict[l] = pg_ds_l |
| 493 | 496 | ... | ... |
请
注册
或
登录
后发表评论