[python] 웹 서버에 데이터베이스 백업 기능 추가하기
이번 포스팅에서는 Python을 사용하여 웹 서버에 데이터베이스 백업 기능을 추가하는 방법을 알아보겠습니다.
1. 필요한 패키지 설치하기
먼저, 필요한 패키지를 설치해야합니다. pip
를 사용하여 flask
와 pymysql
패키지를 설치합니다.
pip install flask pymysql
2. 데이터베이스 연결 설정하기
웹 서버에서 데이터베이스에 접속하기 위해, pymysql
을 사용하여 데이터베이스 연결을 설정해야합니다.
import pymysql
# 데이터베이스 연결 설정
connection = pymysql.connect(
host='localhost',
user='username',
password='password',
db='database_name',
charset='utf8mb4'
)
위 코드에서 host
는 데이터베이스 서버의 호스트 이름이며, user
와 password
는 데이터베이스에 접속하기 위한 사용자 정보입니다. db
는 연결할 데이터베이스 이름을 지정합니다.
3. 백업 기능 구현하기
백업 기능을 구현하기 위해, 데이터베이스의 전체 내용을 백업 파일로 저장하는 함수를 작성합니다.
import datetime
def backup_database():
# 현재 날짜와 시간을 포맷팅하여 백업 파일 이름 생성
now = datetime.datetime.now()
backup_filename = f"backup_{now.strftime('%Y%m%d_%H%M%S')}.sql"
# 백업 파일 생성
with open(backup_filename, 'w') as f:
with connection.cursor() as cursor:
# 데이터베이스 전체 내용을 백업 파일에 저장
cursor.execute('SELECT * FROM table_name')
for row in cursor.fetchall():
f.write(','.join(map(str, row)) + '\n')
print(f"Database backup created: {backup_filename}")
위 코드에서 table_name
은 백업할 데이터베이스 테이블의 이름으로 변경해주어야 합니다.
4. 웹 서버에서 백업 기능 호출하기
백업 기능을 특정 URL을 호출하면 실행되도록 웹 서버에 연결하여 추가합니다.
from flask import Flask
app = Flask(__name__)
@app.route('/backup')
def backup():
backup_database()
return "Database backup created"
if __name__ == '__main__':
app.run()
위 코드에서 /backup
경로에 접속하면 backup_database
함수가 호출되어 데이터베이스 백업이 생성됩니다.
5. 테스트하기
웹 서버를 실행한 뒤 웹 브라우저에서 http://localhost:5000/backup
경로에 접속하면 데이터베이스 백업이 생성됩니다. 백업 파일은 해당 프로젝트 폴더에 저장됩니다.
결론
Python을 사용하여 웹 서버에 데이터베이스 백업 기능을 추가하는 방법을 알아보았습니다. 이 방법을 활용하여 웹 애플리케이션에서 데이터베이스의 백업을 자동으로 생성할 수 있습니다.