From ad60cf262e4e6c7940aa11871c8f03815d64e5b1 Mon Sep 17 00:00:00 2001 From: wqy Date: Sat, 27 Aug 2022 11:51:09 +0800 Subject: [PATCH] Add admin script to create/delete template --- admin.py | 5 +++ tjnetwork_admin.py | 89 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 admin.py create mode 100644 tjnetwork_admin.py diff --git a/admin.py b/admin.py new file mode 100644 index 0000000..74d7066 --- /dev/null +++ b/admin.py @@ -0,0 +1,5 @@ +from tjnetwork_admin import * + +if __name__ == "__main__": + delete_template() + create_template() diff --git a/tjnetwork_admin.py b/tjnetwork_admin.py new file mode 100644 index 0000000..c32f6e2 --- /dev/null +++ b/tjnetwork_admin.py @@ -0,0 +1,89 @@ +import psycopg as pg + +sql_create = [ + "sql/base_create.sql", + "sql/section_create/1.title.sql", + "sql/section_create/2.junctions.sql", + "sql/section_create/3.reservoirs.sql", + "sql/section_create/4.tanks.sql", + "sql/section_create/5.pipes.sql", + "sql/section_create/6.pumps.sql", + "sql/section_create/7.valves.sql", + "sql/section_create/8.tags.sql", + "sql/section_create/9.demands.sql", + "sql/section_create/10.status.sql", + "sql/section_create/11.patterns.sql", + "sql/section_create/12.curves.sql", + "sql/section_create/13.controls.sql", + "sql/section_create/14.rules.sql", + "sql/section_create/15.energy.sql", + "sql/section_create/16.emitters.sql", + "sql/section_create/17.quality.sql", + "sql/section_create/18.sources.sql", + "sql/section_create/19.reactions.sql", + "sql/section_create/20.mixing.sql", + "sql/section_create/21.times.sql", + "sql/section_create/22.report.sql", + "sql/section_create/23.options.sql", + "sql/section_create/24.coordinates.sql", + "sql/section_create/25.vertices.sql", + "sql/section_create/26.labels.sql", + "sql/section_create/27.backdrop.sql", + "sql/section_create/28.end.sql" +] + +sql_drop = [ + "sql/section_drop/28.end.sql", + "sql/section_drop/27.backdrop.sql", + "sql/section_drop/26.labels.sql", + "sql/section_drop/25.vertices.sql", + "sql/section_drop/24.coordinates.sql", + "sql/section_drop/23.options.sql", + "sql/section_drop/22.report.sql", + "sql/section_drop/21.times.sql", + "sql/section_drop/20.mixing.sql", + "sql/section_drop/19.reactions.sql", + "sql/section_drop/18.sources.sql", + "sql/section_drop/17.quality.sql", + "sql/section_drop/16.emitters.sql", + "sql/section_drop/15.energy.sql", + "sql/section_drop/14.rules.sql", + "sql/section_drop/13.controls.sql", + "sql/section_drop/12.curves.sql", + "sql/section_drop/11.patterns.sql", + "sql/section_drop/10.status.sql", + "sql/section_drop/9.demands.sql", + "sql/section_drop/8.tags.sql", + "sql/section_drop/7.valves.sql", + "sql/section_drop/6.pumps.sql", + "sql/section_drop/5.pipes.sql", + "sql/section_drop/4.tanks.sql", + "sql/section_drop/3.reservoirs.sql", + "sql/section_drop/2.junctions.sql", + "sql/section_drop/1.title.sql", + "sql/base_drop.sql" +] + +def create_template(): + with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: + with conn.cursor() as cur: + cur.execute(f"create database project") + with pg.connect(conninfo=f"dbname=project") as conn: + with conn.cursor() as cur: + for sql in sql_create: + with open(sql, "r") as f: + cur.execute(f.read()) + print(f'executed {sql}') + conn.commit() + +def delete_template(): + with pg.connect(conninfo=f"dbname=project") as conn: + with conn.cursor() as cur: + for sql in sql_drop: + with open(sql, "r") as f: + cur.execute(f.read()) + print(f'executed {sql}') + conn.commit() + with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: + with conn.cursor() as cur: + cur.execute(f"drop database project")