Im Zuge der Entwicklung einer REST API mit Python, kommen wir jetzt zu Datenbankmigrationen mit Alembic. Migrationen sind extrem wichtig, wenn du deine Datenbankstruktur im Laufe der Entwicklung ändern willst (z. B. neue Spalten hinzufügen), ohne Daten zu verlieren.

Alembic installieren

pip install alembic

 

Alembic einrichten

Projekt initialisieren
Im Projektordner:

alembic init alembic

Es entsteht ein Ordner alembic/ + eine Konfigurationsdatei alembic.ini.

 

Konfiguration

  1. In alembic.ini die Datenbank-URL anpassen:

    sqlalchemy.url = sqlite:///./users.db

  2. In alembic/env.py dein Datenbankmodell importieren, z. B.:
    from myapp.database import Base # <- dein Base aus SQLAlchemy
    target_metadata = Base.metadata

So weiß Alembic, welche Tabellen & Modelle existieren.

 

Erste Migration erstellen

alembic revision --autogenerate -m "create users table"

Alembic schaut sich Base.metadata an und erstellt ein Migrationsskript in alembic/versions/…py.

 

Migration ausführen

alembic upgrade head

Die Tabellen werden in der Datenbank erzeugt.

 

Beispiel: Spalte hinzufügen

Angenommen, du ergänzt im SQLAlchemy-Modell eine neue Spalte:

class UserDB(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True)
name = Column(String, nullable=False)
email = Column(String, unique=True, index=True, nullable=False)
age = Column(Integer, nullable=True) # <-- NEU

Dann:

  1. Neue Revision erzeugen:
    alembic revision --autogenerate -m "add age column to users"

  2. Migration anwenden:
    alembic upgrade head

Jetzt hat deine Tabelle users eine zusätzliche Spalte age.

 

Best Practices

Immer --autogenerate nutzen, damit Alembic Änderungen automatisch erkennt.
Vor Deployment: Migrationen in einer Testumgebung prüfen.
In Git mit einchecken → Teammitglieder können DB-Schema synchronisieren.
Niemals direkt an der DB-Struktur schrauben – alles über Migrationen.

Ollama mit Zimaboard verwenden

Ollama mit Zimaboard

Wenn Ollama bereits auf Ihrem ZimaBoard installiert ist, läuft das System im Hintergrund als KI-Server. Ollama selbst ist quasi der "Motor", der die KI-Modelle ausführt – um damit zu chatten...

Read more

Zimaboard 2 zeigt keine Festplatten an.

Bei "Wählen Sie die Festplatte aus" wird keine Platte angezeigt. Im Zimaboard Speicher Manager erscheinen keine Platten. 

Read more

Fehler bei Joomla 4 Update Joomla\Filesy…

Beim Installieren eines Updates in einer Joomla 4 Installation erscheint der Fehler: Joomla\Filesystem\File::write(): Argument #2 ($buffer) could not be passed by reference Ursache ist die PHP Version > 8.3 - für Joomla...

Read more

Joomla Error - Class JPlugin not found

Joomla Error - Class JPlugin not found

Das Joomla-Plugin „Verhalten – Abwärtskompatibilität 6“ (eingeführt in 5.4) ermöglicht einen reibungslosen Übergang von Joomla 5 auf Joomla 6. Es überbrückt Inkompatibilitäten, indem es veralteten Code (deprecated) weiter unterstützt. Es...

Read more

Joomla TinyMCE Editor flackert im Firefo…

Zur Beruhigung voran - es liegt sehr wahrscheinlich nicht an deinem Joomla-Setup allein, sondern an einer Inkompatibilität zwischen Firefox 148 und der TinyMCE-Initialisierung in Joomla.

Read more

E-Mail Marketing / Newsletter was gibt e…

E-Mail Marketing Tipps für Newsletter

Immer wieder weren wir gefragt "Wir würden gern einen Newsletter versenden. Wie gehen wir am besten vor? Ist doch kein Problem die Mails direkt über Outlook zu verdenden, oder?" -...

Read more

Widerrufbutton im Onlineshop

Widerrufbutton im Onlineshop

Bei allen B2C Fernabsatzverträgen muss es ab Spätestens ab dem 19. Juni 2026 möglich sein den geschlossenen Vertrag genauso einfach zu widerrufen wie abzuschließen. Was muss ich umbauen? Wie sieht eine Lösung für...

Read more

wasapi modus ausschalten

Um den WASAPI-Exklusivmodus in Windows zu deaktivieren, öffnen Sie über mmsys.cpl (Win+R) die Soundeinstellungen, wählen das Wiedergabegerät aus und entfernen unter „Eigenschaften“ > „Erweitert“ die Haken bei „Anwendungen haben alleinige...

Read more

JCE Fileupload maximum 1024kb

JCE Fileupload maximum 1024kb

Der JCE lässt nur Dateien bis 1024KB ( 1 MB ) zu

Read more
Wir nutzen Cookies auf unserer Website. Diese sind essenziell für den Betrieb der Seite, sogenannte Tracking Cookies werden nicht eingesetzt. Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.