DB엔지니어가 공부하는 python

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

sTricky 2023. 2. 20. 17:55

파이썬으로 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