[PostgreSQL] Shell Script을 이용해서 DDL 문에서 각 Object DDL 문 발라내기

Ja L·2024년 2월 21일
0

[PostgreSQL] Operation

목록 보기
31/35
#!/bin/bash

ddl_file="/var/lib/edb/edb_ddl.sql"

table_ddl="/var/lib/edb/table_ddl.sql"

non_table_ddl="/var/lib/edb/non_table_ddl.sql"

# create table 문장을 포함한 DDL 스크립트를 저장하는 파일

awk '/CREATE TABLE/,/;/' edb_ddl.sql > table_ddl.sql

echo "테이블 생성 구문이 성공적으로 추출되었습니다."

# create sequence 문장을 포함한 DDL 스크립트를 저장하는 파일

awk '/CREATE SEQUENCE/,/;/' edb_ddl.sql > sequence_ddl.sql

echo "시퀀스 생성 구문이 성공적으로 추출되었습니다."

# alter 문을 생성 구문이 성공적으로 추출되었습니다.

awk '/ALTER/,/;/' edb_ddl.sql > alter_ddl.sql

echo "alter 구문이 성공적으로 추출되었습니다."




# ================================================================================
# ================================================================================

# create table 문장을 포함하지 않는 DDL 스크립트를 저장하는 파일

awk '/CREATE TABLE/,/;/ {next} 1' $ddl_file > non_table_ddl.sql

echo "테이블 생성 구문을 포함하지 않는 DDL 스크립트가 성공적으로 추출되었습니다."

# create sequence 문장을 포함하지 않는  DDL 스크립트를 저장하는 파일

awk '/CREATE SEQUENCE/,/;/ {next} 1' non_table_ddl.sql > new_non_table_ddl.sql

echo "시퀀스 생성 구문을 포함하지 않는 DDL 스크립트가 성공적으로 추출되었습니다."

# alter 문을 포함하지 않는 DDL 스크립트 저장

awk '/ALTER/,/;/ {next} 1' new_non_table_ddl.sql > new_new_non_table_ddl.sql

echo "ALTER 구문을 포함하지 않는 DDL 스크립트가 성공적으로 추출되었습니다."


cat new_new_non_table_ddl.sql > non_table_ddl.sql

rm new_non_table_ddl.sql

rm new_new_non_table_ddl.sql
profile
DB Engineer

0개의 댓글