diff --git a/script/admin.py b/script/admin.py index 74d7066..49df07a 100644 --- a/script/admin.py +++ b/script/admin.py @@ -1,5 +1,6 @@ from tjnetwork_admin import * if __name__ == "__main__": - delete_template() + if (have_template()): + delete_template() create_template() diff --git a/script/sql/base_create.sql b/script/sql/create/0.base.sql similarity index 100% rename from script/sql/base_create.sql rename to script/sql/create/0.base.sql diff --git a/script/sql/section_create/1.title.sql b/script/sql/create/1.title.sql similarity index 100% rename from script/sql/section_create/1.title.sql rename to script/sql/create/1.title.sql diff --git a/script/sql/section_create/10.status.sql b/script/sql/create/10.status.sql similarity index 100% rename from script/sql/section_create/10.status.sql rename to script/sql/create/10.status.sql diff --git a/script/sql/section_create/11.patterns.sql b/script/sql/create/11.patterns.sql similarity index 100% rename from script/sql/section_create/11.patterns.sql rename to script/sql/create/11.patterns.sql diff --git a/script/sql/section_create/12.curves.sql b/script/sql/create/12.curves.sql similarity index 100% rename from script/sql/section_create/12.curves.sql rename to script/sql/create/12.curves.sql diff --git a/script/sql/section_create/13.controls.sql b/script/sql/create/13.controls.sql similarity index 100% rename from script/sql/section_create/13.controls.sql rename to script/sql/create/13.controls.sql diff --git a/script/sql/section_create/14.rules.sql b/script/sql/create/14.rules.sql similarity index 100% rename from script/sql/section_create/14.rules.sql rename to script/sql/create/14.rules.sql diff --git a/script/sql/section_create/15.energy.sql b/script/sql/create/15.energy.sql similarity index 100% rename from script/sql/section_create/15.energy.sql rename to script/sql/create/15.energy.sql diff --git a/script/sql/section_create/16.emitters.sql b/script/sql/create/16.emitters.sql similarity index 100% rename from script/sql/section_create/16.emitters.sql rename to script/sql/create/16.emitters.sql diff --git a/script/sql/section_create/17.quality.sql b/script/sql/create/17.quality.sql similarity index 100% rename from script/sql/section_create/17.quality.sql rename to script/sql/create/17.quality.sql diff --git a/script/sql/section_create/18.sources.sql b/script/sql/create/18.sources.sql similarity index 100% rename from script/sql/section_create/18.sources.sql rename to script/sql/create/18.sources.sql diff --git a/script/sql/section_create/19.reactions.sql b/script/sql/create/19.reactions.sql similarity index 100% rename from script/sql/section_create/19.reactions.sql rename to script/sql/create/19.reactions.sql diff --git a/script/sql/section_create/2.junctions.sql b/script/sql/create/2.junctions.sql similarity index 100% rename from script/sql/section_create/2.junctions.sql rename to script/sql/create/2.junctions.sql diff --git a/script/sql/section_create/20.mixing.sql b/script/sql/create/20.mixing.sql similarity index 100% rename from script/sql/section_create/20.mixing.sql rename to script/sql/create/20.mixing.sql diff --git a/script/sql/section_create/21.times.sql b/script/sql/create/21.times.sql similarity index 100% rename from script/sql/section_create/21.times.sql rename to script/sql/create/21.times.sql diff --git a/script/sql/section_create/22.report.sql b/script/sql/create/22.report.sql similarity index 100% rename from script/sql/section_create/22.report.sql rename to script/sql/create/22.report.sql diff --git a/script/sql/section_create/23.options.sql b/script/sql/create/23.options.sql similarity index 100% rename from script/sql/section_create/23.options.sql rename to script/sql/create/23.options.sql diff --git a/script/sql/section_create/24.coordinates.sql b/script/sql/create/24.coordinates.sql similarity index 100% rename from script/sql/section_create/24.coordinates.sql rename to script/sql/create/24.coordinates.sql diff --git a/script/sql/section_create/25.vertices.sql b/script/sql/create/25.vertices.sql similarity index 100% rename from script/sql/section_create/25.vertices.sql rename to script/sql/create/25.vertices.sql diff --git a/script/sql/section_create/26.labels.sql b/script/sql/create/26.labels.sql similarity index 100% rename from script/sql/section_create/26.labels.sql rename to script/sql/create/26.labels.sql diff --git a/script/sql/section_create/27.backdrop.sql b/script/sql/create/27.backdrop.sql similarity index 100% rename from script/sql/section_create/27.backdrop.sql rename to script/sql/create/27.backdrop.sql diff --git a/script/sql/section_create/28.end.sql b/script/sql/create/28.end.sql similarity index 100% rename from script/sql/section_create/28.end.sql rename to script/sql/create/28.end.sql diff --git a/script/sql/section_create/3.reservoirs.sql b/script/sql/create/3.reservoirs.sql similarity index 100% rename from script/sql/section_create/3.reservoirs.sql rename to script/sql/create/3.reservoirs.sql diff --git a/script/sql/section_create/4.tanks.sql b/script/sql/create/4.tanks.sql similarity index 100% rename from script/sql/section_create/4.tanks.sql rename to script/sql/create/4.tanks.sql diff --git a/script/sql/section_create/5.pipes.sql b/script/sql/create/5.pipes.sql similarity index 100% rename from script/sql/section_create/5.pipes.sql rename to script/sql/create/5.pipes.sql diff --git a/script/sql/section_create/6.pumps.sql b/script/sql/create/6.pumps.sql similarity index 100% rename from script/sql/section_create/6.pumps.sql rename to script/sql/create/6.pumps.sql diff --git a/script/sql/section_create/7.valves.sql b/script/sql/create/7.valves.sql similarity index 100% rename from script/sql/section_create/7.valves.sql rename to script/sql/create/7.valves.sql diff --git a/script/sql/section_create/8.tags.sql b/script/sql/create/8.tags.sql similarity index 100% rename from script/sql/section_create/8.tags.sql rename to script/sql/create/8.tags.sql diff --git a/script/sql/section_create/9.demands.sql b/script/sql/create/9.demands.sql similarity index 100% rename from script/sql/section_create/9.demands.sql rename to script/sql/create/9.demands.sql diff --git a/script/sql/base_drop.sql b/script/sql/drop/0.base.sql similarity index 100% rename from script/sql/base_drop.sql rename to script/sql/drop/0.base.sql diff --git a/script/sql/section_drop/1.title.sql b/script/sql/drop/1.title.sql similarity index 100% rename from script/sql/section_drop/1.title.sql rename to script/sql/drop/1.title.sql diff --git a/script/sql/section_drop/10.status.sql b/script/sql/drop/10.status.sql similarity index 100% rename from script/sql/section_drop/10.status.sql rename to script/sql/drop/10.status.sql diff --git a/script/sql/section_drop/11.patterns.sql b/script/sql/drop/11.patterns.sql similarity index 100% rename from script/sql/section_drop/11.patterns.sql rename to script/sql/drop/11.patterns.sql diff --git a/script/sql/section_drop/12.curves.sql b/script/sql/drop/12.curves.sql similarity index 100% rename from script/sql/section_drop/12.curves.sql rename to script/sql/drop/12.curves.sql diff --git a/script/sql/section_drop/13.controls.sql b/script/sql/drop/13.controls.sql similarity index 100% rename from script/sql/section_drop/13.controls.sql rename to script/sql/drop/13.controls.sql diff --git a/script/sql/section_drop/14.rules.sql b/script/sql/drop/14.rules.sql similarity index 100% rename from script/sql/section_drop/14.rules.sql rename to script/sql/drop/14.rules.sql diff --git a/script/sql/section_drop/15.energy.sql b/script/sql/drop/15.energy.sql similarity index 100% rename from script/sql/section_drop/15.energy.sql rename to script/sql/drop/15.energy.sql diff --git a/script/sql/section_drop/16.emitters.sql b/script/sql/drop/16.emitters.sql similarity index 100% rename from script/sql/section_drop/16.emitters.sql rename to script/sql/drop/16.emitters.sql diff --git a/script/sql/section_drop/17.quality.sql b/script/sql/drop/17.quality.sql similarity index 100% rename from script/sql/section_drop/17.quality.sql rename to script/sql/drop/17.quality.sql diff --git a/script/sql/section_drop/18.sources.sql b/script/sql/drop/18.sources.sql similarity index 100% rename from script/sql/section_drop/18.sources.sql rename to script/sql/drop/18.sources.sql diff --git a/script/sql/section_drop/19.reactions.sql b/script/sql/drop/19.reactions.sql similarity index 100% rename from script/sql/section_drop/19.reactions.sql rename to script/sql/drop/19.reactions.sql diff --git a/script/sql/section_drop/2.junctions.sql b/script/sql/drop/2.junctions.sql similarity index 100% rename from script/sql/section_drop/2.junctions.sql rename to script/sql/drop/2.junctions.sql diff --git a/script/sql/section_drop/20.mixing.sql b/script/sql/drop/20.mixing.sql similarity index 100% rename from script/sql/section_drop/20.mixing.sql rename to script/sql/drop/20.mixing.sql diff --git a/script/sql/section_drop/21.times.sql b/script/sql/drop/21.times.sql similarity index 100% rename from script/sql/section_drop/21.times.sql rename to script/sql/drop/21.times.sql diff --git a/script/sql/section_drop/22.report.sql b/script/sql/drop/22.report.sql similarity index 100% rename from script/sql/section_drop/22.report.sql rename to script/sql/drop/22.report.sql diff --git a/script/sql/section_drop/23.options.sql b/script/sql/drop/23.options.sql similarity index 100% rename from script/sql/section_drop/23.options.sql rename to script/sql/drop/23.options.sql diff --git a/script/sql/section_drop/24.coordinates.sql b/script/sql/drop/24.coordinates.sql similarity index 100% rename from script/sql/section_drop/24.coordinates.sql rename to script/sql/drop/24.coordinates.sql diff --git a/script/sql/section_drop/25.vertices.sql b/script/sql/drop/25.vertices.sql similarity index 100% rename from script/sql/section_drop/25.vertices.sql rename to script/sql/drop/25.vertices.sql diff --git a/script/sql/section_drop/26.labels.sql b/script/sql/drop/26.labels.sql similarity index 100% rename from script/sql/section_drop/26.labels.sql rename to script/sql/drop/26.labels.sql diff --git a/script/sql/section_drop/27.backdrop.sql b/script/sql/drop/27.backdrop.sql similarity index 100% rename from script/sql/section_drop/27.backdrop.sql rename to script/sql/drop/27.backdrop.sql diff --git a/script/sql/section_drop/28.end.sql b/script/sql/drop/28.end.sql similarity index 100% rename from script/sql/section_drop/28.end.sql rename to script/sql/drop/28.end.sql diff --git a/script/sql/section_drop/3.reservoirs.sql b/script/sql/drop/3.reservoirs.sql similarity index 100% rename from script/sql/section_drop/3.reservoirs.sql rename to script/sql/drop/3.reservoirs.sql diff --git a/script/sql/section_drop/4.tanks.sql b/script/sql/drop/4.tanks.sql similarity index 100% rename from script/sql/section_drop/4.tanks.sql rename to script/sql/drop/4.tanks.sql diff --git a/script/sql/section_drop/5.pipes.sql b/script/sql/drop/5.pipes.sql similarity index 100% rename from script/sql/section_drop/5.pipes.sql rename to script/sql/drop/5.pipes.sql diff --git a/script/sql/section_drop/6.pumps.sql b/script/sql/drop/6.pumps.sql similarity index 100% rename from script/sql/section_drop/6.pumps.sql rename to script/sql/drop/6.pumps.sql diff --git a/script/sql/section_drop/7.valves.sql b/script/sql/drop/7.valves.sql similarity index 100% rename from script/sql/section_drop/7.valves.sql rename to script/sql/drop/7.valves.sql diff --git a/script/sql/section_drop/8.tags.sql b/script/sql/drop/8.tags.sql similarity index 100% rename from script/sql/section_drop/8.tags.sql rename to script/sql/drop/8.tags.sql diff --git a/script/sql/section_drop/9.demands.sql b/script/sql/drop/9.demands.sql similarity index 100% rename from script/sql/section_drop/9.demands.sql rename to script/sql/drop/9.demands.sql diff --git a/script/tjnetwork_admin.py b/script/tjnetwork_admin.py index c32f6e2..219a40c 100644 --- a/script/tjnetwork_admin.py +++ b/script/tjnetwork_admin.py @@ -1,74 +1,74 @@ 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/create/0.base.sql", + "sql/create/1.title.sql", + "sql/create/2.junctions.sql", + "sql/create/3.reservoirs.sql", + "sql/create/4.tanks.sql", + "sql/create/5.pipes.sql", + "sql/create/6.pumps.sql", + "sql/create/7.valves.sql", + "sql/create/8.tags.sql", + "sql/create/9.demands.sql", + "sql/create/10.status.sql", + "sql/create/11.patterns.sql", + "sql/create/12.curves.sql", + "sql/create/13.controls.sql", + "sql/create/14.rules.sql", + "sql/create/15.energy.sql", + "sql/create/16.emitters.sql", + "sql/create/17.quality.sql", + "sql/create/18.sources.sql", + "sql/create/19.reactions.sql", + "sql/create/20.mixing.sql", + "sql/create/21.times.sql", + "sql/create/22.report.sql", + "sql/create/23.options.sql", + "sql/create/24.coordinates.sql", + "sql/create/25.vertices.sql", + "sql/create/26.labels.sql", + "sql/create/27.backdrop.sql", + "sql/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" + "sql/drop/28.end.sql", + "sql/drop/27.backdrop.sql", + "sql/drop/26.labels.sql", + "sql/drop/25.vertices.sql", + "sql/drop/24.coordinates.sql", + "sql/drop/23.options.sql", + "sql/drop/22.report.sql", + "sql/drop/21.times.sql", + "sql/drop/20.mixing.sql", + "sql/drop/19.reactions.sql", + "sql/drop/18.sources.sql", + "sql/drop/17.quality.sql", + "sql/drop/16.emitters.sql", + "sql/drop/15.energy.sql", + "sql/drop/14.rules.sql", + "sql/drop/13.controls.sql", + "sql/drop/12.curves.sql", + "sql/drop/11.patterns.sql", + "sql/drop/10.status.sql", + "sql/drop/9.demands.sql", + "sql/drop/8.tags.sql", + "sql/drop/7.valves.sql", + "sql/drop/6.pumps.sql", + "sql/drop/5.pipes.sql", + "sql/drop/4.tanks.sql", + "sql/drop/3.reservoirs.sql", + "sql/drop/2.junctions.sql", + "sql/drop/1.title.sql", + "sql/drop/0.base.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: + cur.execute("create database project") + with pg.connect(conninfo="dbname=project") as conn: with conn.cursor() as cur: for sql in sql_create: with open(sql, "r") as f: @@ -76,8 +76,14 @@ def create_template(): print(f'executed {sql}') conn.commit() +def have_template(): + with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: + with conn.cursor() as cur: + cur.execute("select * from pg_database where datname = 'project'") + return cur.rowcount > 0 + def delete_template(): - with pg.connect(conninfo=f"dbname=project") as conn: + with pg.connect(conninfo="dbname=project") as conn: with conn.cursor() as cur: for sql in sql_drop: with open(sql, "r") as f: @@ -86,4 +92,4 @@ def delete_template(): conn.commit() with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: with conn.cursor() as cur: - cur.execute(f"drop database project") + cur.execute("drop database project")