From eaefc61a871a2ac272f546e4dafee9d11e4611a7 Mon Sep 17 00:00:00 2001 From: wqy Date: Sat, 3 Sep 2022 08:28:13 +0800 Subject: [PATCH] Support to copy project --- api/__init__.py | 1 + api/project.py | 7 +++++-- tjnetwork_new.py | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/api/__init__.py b/api/__init__.py index 5d348c6..44a98b8 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -1,5 +1,6 @@ from .project import have_project, create_project, delete_project from .project import is_project_open, open_project, close_project +from .project import copy_project from .operation import execute_undo as undo from .operation import execute_redo as redo diff --git a/api/project.py b/api/project.py index b82782a..f283c85 100644 --- a/api/project.py +++ b/api/project.py @@ -9,10 +9,13 @@ def have_project(name: str) -> bool: cur.execute(f"select * from pg_database where datname = '{name}'") return cur.rowcount > 0 -def create_project(name: str) -> None: +def copy_project(source: str, new: str) -> None: with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: with conn.cursor() as cur: - cur.execute(f"create database {name} with template = project") + cur.execute(f"create database {new} with template = {source}") + +def create_project(name: str) -> None: + return copy_project('project', name) def delete_project(name: str) -> None: with pg.connect(conninfo="dbname=postgres", autocommit=True) as conn: diff --git a/tjnetwork_new.py b/tjnetwork_new.py index 4e8632e..52cb0e5 100644 --- a/tjnetwork_new.py +++ b/tjnetwork_new.py @@ -35,6 +35,9 @@ def open_project(name: str) -> None: def close_project(name: str) -> None: return api.close_project(name) +def copy_project(source: str, new: str) -> None: + return api.copy_project(source, new) + ############################################################ # operation