diff --git a/psql_psql_migrator.py b/psql_psql_migrator.py deleted file mode 100644 index 2fe39c4..0000000 --- a/psql_psql_migrator.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- -import os, subprocess, json - -def update_progress(status, message, percent=0): - with open("pg_progress.json", "w") as f: - json.dump({"status": status, "message": message, "percent": percent}, f) - -def migrate(): - # استلام البيانات - S_HOST, S_NAME, S_USER, S_PASS = os.getenv("DB_HOST"), os.getenv("DB_NAME"), os.getenv("DB_USER"), os.getenv("DB_PASS") - T_HOST, T_NAME, T_USER, T_PASS = os.getenv("DEST_HOST"), os.getenv("DEST_NAME"), os.getenv("DEST_USER"), os.getenv("DEST_PASS") - - schemas = os.getenv("ONLY_SCHEMAS", "").strip() - tables = os.getenv("ONLY_TABLES", "").strip() - - filter_args = "" - # إذا تم اختيار جداول محددة، نكتفي بها - if tables: - for t in tables.split(','): - filter_args += f" -t {t.strip()}" - # إذا لم تُحدد جداول ولكن حُددت Schemas، ننقل الـ Schemas بالكامل - elif schemas: - for s in schemas.split(','): - filter_args += f" -n {s.strip()}" - - update_progress("running", "بدء ضخ البيانات المختارة...", 30) - os.environ['PGPASSWORD'] = S_PASS - - migrate_cmd = ( - f"pg_dump -h {S_HOST} -U {S_USER} {filter_args} --clean --if-exists --no-owner {S_NAME} | " - f"PGPASSWORD={T_PASS} psql -h {T_HOST} -U {T_USER} -d {T_NAME}" - ) - - try: - process = subprocess.Popen(migrate_cmd, shell=True, stderr=subprocess.PIPE) - update_progress("running", "جاري نقل الهياكل والبيانات...", 70) - _, stderr = process.communicate() - - if process.returncode == 0: - update_progress("completed", "نجحت عملية النقل المخصصة! ✅", 100) - else: - update_progress("error", f"خطأ: {stderr.decode()}", 0) - except Exception as e: - update_progress("error", str(e), 0) - -if __name__ == "__main__": - migrate() \ No newline at end of file