Zainstalowałem alembik 0.3.4, sqlalchemy, wersję SQLite 3.7.4 i zaktualizowałem SQLAlchemy 0.6.4 do SQLAlchemy 0.7 lub nowszego z mojego Ubuntu. I przestrzegać instrukcji: http://alembic.readthedocs.org/en/latest/tutorial.htmlPoproś o prosty przykład działania alembika dla automatycznego generowania migracji
Teraz jestem testowania: Auto Generowanie Migracje ja stworzyliśmy pakiet: schematów oraz znacznik pakietu pod schematów: startowy .py z jednej linii zdefiniowane:
__all__ = ["teacher"]
ja również utworzony plik modułu: dbmodel.py w katalogu schematów z poniższej treści
Base = declarative_base()
class teacher(Base):
__tablename__ = 'teacher'
id = Column(Integer, primary_key=True)
name = Column(String)
department = Column(String)
przez WA y, mam utworzony sqlite db, i działa dobrze przed wykonaniem testu przed Auto Generating Migrations. Skonfigurowałem plik env.py. Istnieją dwie linie dodania:
from schemas.dbmodel import Base
target_metadata = Base.metadata
Potem uruchom:
alembic revision --autogenerate -m "Added teacher table"
ale wciąż błąd:
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 schemas.dbmodel import Base
ImportError: No module named schemas.dbmodel
Nie wiem, dlaczego to jest tak trudne dla mnie do testowania prosty przykład użycia alembika. Chcę tylko zaimportować mój model danych aplikacji do fizycznego modelu bazy danych. Czy to jest takie skomplikowane? Dzięki. Proszę kogoś, kto zna alembik, krok po kroku daje nam prosty przykład. Sądzę, że więcej osób skorzysta z tego.
Więc gdzie w kodzie znajduje się adres URL do bazy danych sqlite? Zrobiłem to do pracy z istniejącej piramidy, która używała migracji sqlalchemy. Aby to zadziałało, musiałem uruchomić łącze url/db tak, jak robi to piramida, a następnie załadować mój model Base z tego miejsca. https://github.com/mitechie/Bookie/blob/develop/dbversions/env.py#L12 – Rick
W pliku: alembic.ini skonfigurowałem go i dodałem jedną linię: sqlalchemy.url = sqlite: /// test To pracowałem nad przeniesieniem zmiany schematu do mojego testowego DB. – user1342336