2012-06-24 4 views
4
증류기

를 사용하여 마이그레이션 난 그냥 배우고자동 생성 튜토리얼에서

Traceback (most recent call last): 
File "/usr/local/bin/alembic", line 9, in <module> 
load_entry_point('alembic==0.3.4', 'console_scripts', 'alembic')() 
File "/usr/local/lib/python2.7/dist-packages/alembic-0.3.4-py2.7.egg/alembic/config.py", line 229, in main 
**dict((k, getattr(options, k)) for k in kwarg) 
File "/usr/local/lib/python2.7/dist-packages/alembic-0.3.4-py2.7.egg/alembic/command.py", line 93, in revision 
script.run_env() 
File "/usr/local/lib/python2.7/dist-packages/alembic-0.3.4-py2.7.egg/alembic/script.py", line 188, in run_env 
util.load_python_file(self.dir, 'env.py') 
File "/usr/local/lib/python2.7/dist-packages/alembic-0.3.4-py2.7.egg/alembic/util.py", line 185, in load_python_file 
module = imp.load_source(module_id, path, open(path, 'rb')) 
File "alembic/env.py", line 20, in <module> 
from myapp.mymodel import Base 
ImportError: No module named myapp.mymodel 

증류기를하고, 또한 파이썬을 사용한 적이 없습니다. 이미 myapp.mymodel이 있습니까, 아니면 파이썬을 사용하여 만들 필요가 있습니다. 그렇게하는 방법? 고마워요!

+0

도움이 될 수있는 사이트는 다음과 같습니다. http://www.mail-archive.com/[email protected]/msg26799.html – user1342336

답변

20

"myapp.mymodel이 이미 있거나 파이썬을 사용하여 만들어야합니다. 어떻게해야합니까?" - 당신이 요구하는 경우, 당신은 아직 당신이 마이 그 레이션 해야하는 것이 아무것도없는 것처럼 들리 네.

마이그레이션의 아이디어는, 라 증류기 A, 이렇게되면 :

  1. 먼저 당신이 당신의 데이터 모델은 SQLAlchemy의의 을 활용 클래스 선언의 무리에 의해 일반적으로 , 파이썬 코드에서 정의한 '선언적'모델링 구조. 이것은 'mymodel.py'라는 파일에서 발생합니다. 또는 응용 프로그램이 더 큰 경우이 파일을 여러 개 가져온 다음 mymodel.py로 가져 와서 기호를 편리한 네임 스페이스로 가져올 수 있습니다. 이 mymodel.py 또는 그 이름을 무엇이든간에 은 myapp 디렉토리에 있어야합니다. 당신은 파이썬에 'myapp'이 __init__.py 파일을 넣음으로써 모듈이라는 것을 나타낼 것입니다 ( 이 비어있을 수도 있고 다른 것들이있을 수도 있습니다 ...) 파이썬 프로젝트 과 이에 대한 모듈 구조에 대해 읽어보십시오. , 아래 # 3의 링크 참조). 당신의 데이터베이스 엔진으로 실제 데이터베이스 스키마를 (왼쪽했다 당신이 파일이나 파일에 모델 정의를 변경 한 일부 나중에,에서

  2. 당신은 GUI 또는 에서 볼하는 방법과 같이, 그것을보고 명령 행 데이터베이스 관리 클라이언트)의 한 걸음. 이제 에 차이점을 수정하는 데 필요한 명령을 실행하는 시스템이 필요합니다.

  3. 여기서 Alembic이 등장합니다. 실제 데이터베이스는 데이터베이스 연결 문자열을주고, 데이터 모델 정의는 파이썬 파일에서 찾을 수 있습니다. mymodel.py 또는 이름을 부여 할 수 있습니다. .py로 끝나는 이름이 일 수 있으며, 사용자는 소원을 통해 Alembic이 가져올 수있는 한 원하는대로 배치 할 수 있습니다. 그 일을하는 기계류 이 명확하지 않다면, 파일 시스템에서 모듈이 어떻게 구성되어 있는지, 그에 따라 어떻게 가져올지를 배우는 것이 일반적인 파이썬 관용어 일뿐입니다. 여기에 시작입니다 그 : 당신은 이미 모델 선언을 포함하는 파이썬 파일로 인식 아무것도하지 않으면 http://docs.python.org/tutorial/modules.html

, 당신이 단지 SQLAlchemy의 더 많은 연습을하기 전에 필요한 경우 일 수 있습니다 마이그레이션과 같은 문제에 대해 걱정할 필요가 없습니다.

+0

정말 고마워요! 이것은 내가 초급자로서 따라야하는 것입니다. – user1342336

+0

반갑습니다. 행운을 빕니다! – cdaddr