2009-09-27 2 views
3

SQLAlchemy를 사용하고 있으며 /model/__init__.py에 정의한 테이블을 만들 수 있지만/model 디렉토리에있는 다른 파일에 클래스, 테이블 및 매핑을 정의했습니다. .pylons와 SQLAlchemy로 테이블 만들기

paster 설정 - 응용 프로그램 development.ini

:

예를 들어 나는 프로파일 클래스와 정의 그리고 실행 테이블을 만들려면 /model/profile.py

에 매핑되는 프로파일 테이블이

하지만 내 문제는 내가 /model/__init__.py에 정의 된 테이블이 제대로 만들어 지지만 /model/profile.py에있는 테이블 정의가 만들어지지 않는다는 것입니다. /model/profile.py에있는 테이블 정의를 실행하여 모든 테이블을 만들 수 있습니까?

도움 주셔서 감사합니다.

답변

0

다른 테이블의 모듈을 .py에 가져오고 다른 파일의 models.meta에서 메타 데이터 개체를 사용하십시오. Pylons default setup_app 함수는 import 한 후에 model.meta에서 메타 데이터 객체에있는 모든 테이블을 생성합니다.

0

선언 스타일을 사용하는 경우 테이블 생성에 Base.meta를 사용해야합니다.

5

제 첫 번째 실제 Pylons 프로젝트에서 동일한 문제가 발생했습니다.

  1. 당신의 __init__.py에서
  2. 는 그때 이후 내 매퍼 모든 정의를 추가하여 def init_model
  3. from profile import *를 추가하려면 profile.py 파일에 테이블과 클래스를 정의 : 나를 위해 일한 솔루션이이었다. init 파일에 이들을 모두 보관하면 다른 파일에 정의 된 테이블간에 관련된 문제가 해결되었습니다.

또한 선언적 방법을 사용하여 프로젝트를 만들었으므로 init 파일에서 매핑을 정의 할 필요가 없습니다.

+0

달콤한 크리스마스, 감사합니다. create_all()을 _work로 가져 오는 방법을 잊어 버렸기 때문에 Pylons와 악몽을 꿨습니다 ._ –