본문 바로가기

DB엔지니어가 공부하는 python

파이썬으로 postgresql table ddl 추출 하는 프로그램 만들기

파이썬으로 postgresql table ddl 추출 하는 프로그램 만들기

안녕하세요.
파이썬을 이용해서 postgresql에 존재하는 테이블에 대한 DDL을 추출해내는 프로그램을 생성 해보았습니다.

필요하신 분들이 잘 사용 하실수 있도록 공유해 드리도록 하겠습니다.
감사합니다.

 import subprocess

def extract_table_ddl(table_name):
    command = f"pg_dump -st public.{table_name} --schema-only dbname=<database_name> " \
              f"-U <username> -h <database_host> -p <database_port>"
    process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
    (output, err) = process.communicate()
    exit_code = process.wait()

    if exit_code != 0:
        raise Exception(f"Error {exit_code}: {err.decode('utf-8')}")

    ddl = output.decode('utf-8')
    return ddl

위와 같이 코드를 작성한 뒤 아래와 같이 호출 하시면 됩니다.

table_ddl = extract_table_ddl('table_name')
print(table_ddl)

감사합니다! 좋은하루 되세요.

by.sTricky