2011-03-31 6 views
8

생산 단계에서 (버전 등으로) 마이그레이션 기능을 살펴볼 것입니다. 그러나 개발 단계에있는 동안 변경 사항을 처리하는 가장 일반적인 방법이 궁금합니다. 내 models.py에 있을까? 응용 프로그램은 SQLAlchemy로 설정됩니다.피라미드의 모델 변경을 처리하는 방법

저는 파이썬 웹 프레임 워크에 비교적 익숙합니다. 내 배경은 PHP이고 가장 최근에는 보통 Symfony 1.4를 사용하여 프로젝트를 마쳤습니다. 보통 symfony doctrine:build --all --and-load을 수행 할 수 있으며, 모델 클래스를 다시 작성하고, 데이터베이스를 다시 만들고, 데이터 픽스처를로드하는 일을 처리 할 것입니다.

현재 내가하고있는 일은 데이터베이스를 삭제하고, 다시 만들고, 테이블을 다시 만드는 등의 작업을하는 복사기로 앱을 제공하는 것입니다.

이것은 아마도 멍청한 질문 일뿐입니다.

답변

2

괜찮습니다. 나는 그렇게처럼 내 initialize_sql 수정 :

def initialize_sql(engine): 
    DBSession.configure(bind=engine) 
    Base.metadata.bind = engine 
    Base.metadata.drop_all(engine) #added this 
    Base.metadata.create_all(engine) 
    try: 
     populate() 
    except IntegrityError: 
     pass 

는 다행히이 테이블 만이 아니라 전체 데이터베이스 방울 때문에 빠르게 실행됩니다.

4

저는 지금 SQL Alchemy Migrate를 사용하고 있습니다. 매우 쉽습니다.

을 heres 자습서 : http://spyced.blogspot.com/2008/07/sqlalchemy-migrate-for-dummies.html

더 많은 정보와 튜토리얼을 가진 PDF : http://www.google.com/url?sa=t&source=web&cd=5&sqi=2&ved=0CC4QFjAE&url=http%3A%2F%2Fsqlalchemy-migrate.googlecode.com%2Ffiles%2Fsqlalchemy-migrate-0.5.1.3-docs.pdf&rct=j&q=sqlalchemy%20migrate&ei=QgCUTYGGEcPPiALH65SdCQ&usg=AFQjCNHG-1IdCiIPSslwK_hTMiCzrYVvoA&sig2=b_5-I3D-nebSVR_7FccRvQ&cad=rja

그것은 설치하기 위해 expresive SQLAlchemy의 방식으로 데이터베이스 변경 (업그레이드 다운 그레이드)을 쉽게 만들 수 .

관련 문제