ソースを参照

Merge pull request #16305 from gavindsouza/drop-site-pg

feat: Drop site support for postgres
version-14
gavin 3年前
committed by GitHub
コミット
e696a8d73a
この署名に対応する既知のキーがデータベースに存在しません GPGキーID: 4AEE18F83AFDEB23
3個のファイルの変更14行の追加2行の削除
  1. +4
    -1
      frappe/commands/site.py
  2. +2
    -1
      frappe/database/__init__.py
  3. +8
    -0
      frappe/database/postgres/setup_db.py

+ 4
- 1
frappe/commands/site.py ファイルの表示

@@ -677,7 +677,9 @@ def _drop_site(site, db_root_username=None, db_root_password=None, archived_site


try: try:
if not no_backup: if not no_backup:
scheduled_backup(ignore_files=False, force=True)
click.secho(f"Taking backup of {site}", fg="green")
odb = scheduled_backup(ignore_files=False, force=True, verbose=True)
odb.print_summary()
except Exception as err: except Exception as err:
if force: if force:
pass pass
@@ -692,6 +694,7 @@ def _drop_site(site, db_root_username=None, db_root_password=None, archived_site
click.echo("\n".join(messages)) click.echo("\n".join(messages))
sys.exit(1) sys.exit(1)


click.secho("Dropping site database and user", fg="green")
drop_user_and_database(frappe.conf.db_name, db_root_username, db_root_password) drop_user_and_database(frappe.conf.db_name, db_root_username, db_root_password)


archived_sites_path = archived_sites_path or os.path.join(frappe.get_app_path('frappe'), '..', '..', '..', 'archived', 'sites') archived_sites_path = archived_sites_path or os.path.join(frappe.get_app_path('frappe'), '..', '..', '..', 'archived', 'sites')


+ 2
- 1
frappe/database/__init__.py ファイルの表示

@@ -18,7 +18,8 @@ def setup_database(force, source_sql=None, verbose=None, no_mariadb_socket=False
def drop_user_and_database(db_name, root_login=None, root_password=None): def drop_user_and_database(db_name, root_login=None, root_password=None):
import frappe import frappe
if frappe.conf.db_type == 'postgres': if frappe.conf.db_type == 'postgres':
pass
import frappe.database.postgres.setup_db
return frappe.database.postgres.setup_db.drop_user_and_database(db_name, root_login, root_password)
else: else:
import frappe.database.mariadb.setup_db import frappe.database.mariadb.setup_db
return frappe.database.mariadb.setup_db.drop_user_and_database(db_name, root_login, root_password) return frappe.database.mariadb.setup_db.drop_user_and_database(db_name, root_login, root_password)


+ 8
- 0
frappe/database/postgres/setup_db.py ファイルの表示

@@ -95,3 +95,11 @@ def get_root_connection(root_login=None, root_password=None):
frappe.local.flags.root_connection = frappe.database.get_db(user=root_login, password=root_password) frappe.local.flags.root_connection = frappe.database.get_db(user=root_login, password=root_password)


return frappe.local.flags.root_connection return frappe.local.flags.root_connection


def drop_user_and_database(db_name, root_login, root_password):
root_conn = get_root_connection(frappe.flags.root_login or root_login, frappe.flags.root_password or root_password)
root_conn.commit()
root_conn.sql(f"SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = %s", (db_name, ))
root_conn.sql(f"DROP DATABASE IF EXISTS {db_name}")
root_conn.sql(f"DROP USER IF EXISTS {db_name}")

読み込み中…
キャンセル
保存