[python] SQLAlchemy에서 데이터베이스 스키마 수정하기

SQLAlchemy는 파이썬에서 사용되는 강력한 ORM(Object-Relational Mapping) 라이브러리입니다. 데이터베이스 스키마를 수정하는 작업은 프로젝트 개발 과정에서 자주 발생합니다. 이번 글에서는 SQLAlchemy를 사용하여 데이터베이스 스키마를 수정하는 방법을 알아보겠습니다.

1. 필요한 패키지 설치하기

먼저 SQLAlchemy와 함께 작업하기 위해 필요한 패키지를 설치해야 합니다. 다음 명령어를 사용하여 필요한 패키지를 설치합니다.

$ pip install sqlalchemy

2. 데이터베이스 연결하기

SQLAlchemy를 사용하여 데이터베이스에 연결하는 첫 번째 단계는 create_engine 함수를 사용하여 데이터베이스 URL을 생성하는 것입니다. 다음은 MySQL 데이터베이스에 연결하는 예제입니다.

from sqlalchemy import create_engine

engine = create_engine('mysql://<username>:<password>@<host>/<database_name>')

위 코드에서 <username>, <password>, <host>, <database_name>은 실제 데이터베이스 연결 정보로 대체되어야 합니다.

3. 데이터베이스 스키마 수정하기

데이터베이스 스키마를 수정하기 위해서는 SQLAlchemy의 MetaDataTable 클래스를 사용해야 합니다. MetaData는 데이터베이스의 메타데이터를 저장하고 관리하는 클래스이며, Table은 데이터베이스에 있는 테이블을 나타내는 클래스입니다.

다음은 특정 테이블의 컬럼을 추가하는 예제입니다.

from sqlalchemy import Table, Column, Integer, String, MetaData

metadata = MetaData(bind=engine)
my_table = Table('my_table', metadata, autoload=True)

new_column = Column('new_column', Integer)
new_column.create(my_table)

위 코드에서 my_table은 수정할 테이블이고, new_column은 추가할 컬럼입니다. create 메서드를 사용하여 새로운 컬럼을 생성합니다.

또는 이미 존재하는 컬럼을 삭제하는 경우에는 drop 메서드를 사용할 수 있습니다.

my_table.c.existing_column.drop()

위 코드에서 existing_column은 삭제할 컬럼입니다. drop 메서드를 사용하여 컬럼을 삭제합니다.

4. 변경 사항 반영하기

마지막으로, 스키마를 수정한 후에는 변경 사항을 실제 데이터베이스에 반영해야 합니다. SQLAlchemy에서는 MetaData 클래스의 create_all 메서드를 사용하여 변경 사항을 반영할 수 있습니다.

metadata.create_all()

위 코드에서 create_all 메서드를 호출하면 모든 변경 사항이 데이터베이스에 반영됩니다.

결론

SQLAlchemy를 사용하여 데이터베이스 스키마를 수정하는 방법을 알아보았습니다. SQLAlchemy는 강력한 ORM 라이브러리로써 데이터베이스 작업을 쉽고 편리하게 처리할 수 있도록 도와줍니다. 데이터베이스 스키마를 수정하는 작업이 필요할 때는 위의 방법을 참고해보세요.

참고 자료