-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexcecute.sh
executable file
·46 lines (36 loc) · 1.42 KB
/
excecute.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
DB_NAME=maru
DB_USER=cheesecrust # 데이터베이스 사용자 이름
# local : maru
DB_HOST=mydatabase.c3kmc4wcyz81.ap-northeast-2.rds.amazonaws.com # 로컬에서 실행할 경우 'localhost'로 설정
# localhoat : localhost
DB_PORT=5432
# 기본 포트는 5432
DB_PASSWORD=0810jack
# local : 0810
SQL_DIRECTORY=~/Desktop/test # SQL 파일들이 있는 디렉터리 경로
# 환경 변수 설정 (비밀번호를 입력하지 않으려면)
export PGPASSWORD=$DB_PASSWORD
SQL_FILES=("card_feature.sql" "profile_image.sql" "member_account.sql"
"room_info.sql" "studio_post.sql" "dormitory_post.sql" "room_image.sql" "view_post.sql" "participation")
# 트랜잭션 시작
echo "BEGIN;" > $SQL_DIRECTORY/transaction.sql
# 모든 .sql 파일을 순차적으로 실행
for SQL_FILE in "${SQL_FILES[@]}"; do
cat "$SQL_DIRECTORY/$SQL_FILE" >> $SQL_DIRECTORY/transaction.sql
echo "" >> $SQL_DIRECTORY/transaction.sql
done
# 트랜잭션 커밋
echo "COMMIT;" >> $SQL_DIRECTORY/transaction.sql
# 트랜잭션 파일 실행
psql -h $DB_HOST -U $DB_USER -d $DB_NAME -p $DB_PORT -f "$SQL_DIRECTORY/transaction.sql"
# 실행 결과 출력
if [ $? -eq 0 ]; then
echo "All SQL files executed successfully and committed."
else
echo "Error occurred. Rolling back."
fi
# 임시 트랜잭션 파일 삭제
rm "$SQL_DIRECTORY/transaction.sql"
# PGPASSWORD 환경 변수 삭제
unset PGPASSWORD
echo "All SQL files have been executed."