Flask 앱에서 SQLite 데이터베이스를 MySQL 데이터베이스로 대체하려고했습니다.SQLAlchemy-Flask에서 MySQL 데이터베이스로 마이그레이션하는 방법
이전에는 Mega Flask Tutorial의 스크립트를 사용하여 SQLAlchemy-Migrate를 사용하여 데이터베이스 생성 및 마이그레이션을 관리했습니다.
이 스크립트는 기본적으로 MySQL과 호환되지 않으므로 MySQL과 함께 SQLAlchemy-Migrate를 사용하는 방법을 찾을 수 없습니다.
MySQL을 사용하여 개발할 때 일반적으로 어떻게 모델 및 데이터베이스 마이그레이션에 대한 변경 사항을 처리합니까?
#Config
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:[email protected]/app'
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')
#db_create.py
from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
from app import db
import os.path
db.create_all()
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository')
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
else:
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO))
#Traceback
Traceback (most recent call last):
File "db_create.py", line 12, in <module>
api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.ve
rsion(SQLALCHEMY_MIGRATE_REPO))
File "C:\pyprojects\cc\flask\lib\site-packages\migrate\versioning\api.py", lin
e 133, in version
repo = Repository(repository)
File "C:\pyprojects\cc\flask\lib\site-packages\migrate\versioning\repository.p
y", line 77, in __init__
self.verify(path)
File "C:\pyprojects\cc\flask\lib\site-packages\migrate\versioning\repository.p
y", line 98, in verify
raise exceptions.InvalidRepositoryError(path)
migrate.exceptions.InvalidRepositoryError: C:\pyprojects\cc\db_repository
Flask Mega Tutorial의 저자가 [Flask-Migrate] (http://flask-migrate.readthedocs.org/en/latest/)를 확인하십시오. – dirn
왜 호환되지 않는다고 생각합니까? 사용중인 코드 및 오류 내용과 같은 질문에 세부 정보를 추가하십시오. – davidism
@davidism이 (가) 코드로 업데이트되었습니다. – Chockomonkey