Ich habe Alembic 0.3.4, sqlalchemy, SQLite Version 3.7.4 installiert und SQLAlchemy 0.6.4 auf SQLAlchemy 0.7 oder höher von meinem ubuntu aktualisiert. folgte ich die Anweisung: http://alembic.readthedocs.org/en/latest/tutorial.htmlAnforderung eines einfachen Alembic-Arbeitsbeispiels für automatische Generierung von Migrationen
Jetzt bin ich testen: Auto generieren Migrationen Ich habe ein Paket erstellt: schema, und ein Paket Marker unter Schema: init Py mit einer Zeile definiert:
__all__ = ["teacher"]
ich habe auch eine Moduldatei: dbmodel.py in Schemata Verzeichnis mit folgendem Inhalt
Base = declarative_base()
class teacher(Base):
__tablename__ = 'teacher'
id = Column(Integer, primary_key=True)
name = Column(String)
department = Column(String)
Durch die wa y, Ich habe eine SQLite db erstellt, und es läuft gut für einige Tests vor der automatischen Generierung von Migrationen. Ich habe die Datei env.py konfiguriert. Es gibt zwei Zeilen hinzugefügt:
from schemas.dbmodel import Base
target_metadata = Base.metadata
Dann laufe ich:
alembic revision --autogenerate -m "Added teacher table"
aber immer noch Fehler:
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
Ich weiß nicht, warum es so schwierig ist für mich zu testen ein einfaches Beispiel mit Alambic. Ich möchte nur mein Anwendungsdatenmodell in das physische Datenbankmodell importieren. Ist das so kompliziert? Vielen Dank. Bitte jemanden, der Alambic kennt, gibt uns ein einfaches Beispiel Schritt für Schritt. Ich schätze, mehr Menschen werden davon profitieren.
Also wo in Ihrem Code ist die URL zur SQLite-Datenbank? Ich habe dies aus einer bestehenden Pyramiden-Anwendung, die sqlalchemy-Migrationen verwendet. Um dies zum Laufen zu bringen, musste ich die URL/Db-Verbindung als Pyramide starten und dann mein Modell Base von dort laden. https://github.com/mitechie/Bookie/blob/develop/dbversions/env.py#L12 – Rick
In-Datei: alembic.ini, konfiguriert ich es und fügte hinzu, eine Zeile: sqlalchemy.url = sqlite: /// Test Dieser arbeitete für die Migration der Schemaänderung in meine Test-DB. – user1342336