원래 DB를 쓰려면 SQL 쿼리가 필요하다. 그러나 ORM이 있으면 파이썬 문법만으로도 DB를 다룰 수 있다.
ORM : object relational mapping, DB 데이터를 저장하는 테이블을 파이썬 클래스로 만들어 관리하는 기술. SQL문법을 파이썬 객체로 맵핑해 파이썬 객체의 인스턴스, 메소드를 통해 구현토록 함.
Flask-Migrate 라이브러리를 설치하면 SQLAlchemy도 함께 설치된다.
이렇게 설치를 하고, 설정 파일을 추가하자.
루트 디렉토리에 config.py 파일을 생성하고 (C:/projects/myproject/config.py) 다음과 같이 코드를 작성하자.
pybo.py라는 DB파일을 프로젝트의 루트 디렉토리에 저장하려는 내용이다.
이제 pybo/__init__.py 파일을 수정해 SQLAlchemy를 적용할 수 있다.
db, migrate 객체를 create_app 함수 밖에서 생성해 주어야 다른 모듈에서 사용할 수 있다. 그래서 db, migrate를 create_app 밖에서 생성하고, 안에서 객체 초기화 시킨다.
(myproject) c:\projects\myproject>flask db init
위 명령어를 실행하면 이제 데이터베이스가 초기화 되고, migrations라는 디렉토리가 자동으로 생성되지만 냅두면 된다. 그리고 flask db init는 처음 1번만 실행하면 된다.
앞으로 모델을 추가하거나 변경할텐데 주로 사용할 명령어는 다음과 같다.
- flask db migrate : 모델을 생성하거나, 변경할 때
- flask db upgrade : 모델의 변경 내용을 실제 DB에 적용할 때
다음단계에는 모델을 만들어보자.