Zum Hauptinhalt springen
Blog & News

Aktuelles & Updates von
Joomla, Wordpress und Co.

News, HowTos und Tutorials rund um Webdesign, Webentwicklung, Webhosting und Digitalisierung.

Blog & News

REST-API : Datenbankmigrationen mit Alembic

15.09.2025 · 2 Min Lesezeit

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.

Zurück zur Übersicht