1. Migrationen in einem benutzerdefinierten Verzeichnis speichern
Beim Initialisieren und Ausführen von flask db-Befehlen kannst du den Pfad für die Migrationen angeben, indem du --directory hinzufügst.
Schritte:
a. Erstelle die Verzeichnisstruktur:
Erstelle den gewünschten Ordner in deinem Projekt, falls dieser noch nicht existiert:
mkdir -p DataDomain/Database/Migrations
b. Initialisiere die Migrationen in diesem Verzeichnis:
Nutze den Befehl flask db init, um die Migrationen im angegebenen Verzeichnis zu initialisieren:
flask db init --directory DataDomain/Database/Migrations
Dieser Befehl erstellt die Migrationsdateien im Verzeichnis /DataDomain/Database/Migrations.
c. Erstelle die Migrationsskripte:
Wenn du eine neue Migration erstellen möchtest, kannst du den --directory-Parameter verwenden:
flask db migrate -m "Initial migration" --directory DataDomain/Database/Migrations
d. Anwenden der Migrationen:
Um die Migrationen aus diesem Verzeichnis anzuwenden, führst du flask db upgrade mit dem --directory-Parameter aus:
flask db upgrade --directory DataDomain/Database/Migrations
2. Integration in dein run.py-Skript:
Wenn du möchtest, dass die Migrationen in deinem benutzerdefinierten Verzeichnis automatisch beim Start angewendet werden, kannst du den Pfad in deinem Python-Skript explizit angeben.
Hier ein aktualisiertes Beispiel für dein run.py:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate, upgrade
import os
app = Flask(__name__)
app.config.from_object('config.DevelopmentConfig') # Passe das an deine Config an
db = SQLAlchemy(app)
migrate = Migrate(app, db, directory='DataDomain/Database/Migrations') # Setze hier das Verzeichnis
# Importiere deine Modelle hier
from your_models import User, Tournament, Team
def apply_migrations():
"""Führt Migrationen aus dem angegebenen Verzeichnis automatisch aus."""
with app.app_context():
upgrade(directory='DataDomain/Database/Migrations')
if __name__ == "__main__":
# Vor dem Start von Flask Migrationen anwenden
apply_migrations()
# Starte die Flask-Anwendung
app.run(host="0.0.0.0", port=5000)
3. Docker-Integration:
Wenn du deine Docker-Container startest, kannst du sicherstellen, dass der Migrationspfad auch in Docker funktioniert. Der Befehl zum Anwenden der Migrationen bleibt derselbe, da du den --directory-Parameter angibst.
Beispiel docker-compose.yml:
command: >
flask db upgrade --directory DataDomain/Database/Migrations
Wir wollen es in die provision.sh packen und dafür muss dort ein extra Step für die migrations hinzugefügt werden
1. Migrationen in einem benutzerdefinierten Verzeichnis speichern
Beim Initialisieren und Ausführen von
flask db
-Befehlen kannst du den Pfad für die Migrationen angeben, indem du--directory
hinzufügst.Schritte:
a. Erstelle die Verzeichnisstruktur:
Erstelle den gewünschten Ordner in deinem Projekt, falls dieser noch nicht existiert:
b. Initialisiere die Migrationen in diesem Verzeichnis:
Nutze den Befehl
flask db init
, um die Migrationen im angegebenen Verzeichnis zu initialisieren:Dieser Befehl erstellt die Migrationsdateien im Verzeichnis
/DataDomain/Database/Migrations
.c. Erstelle die Migrationsskripte:
Wenn du eine neue Migration erstellen möchtest, kannst du den
--directory
-Parameter verwenden:d. Anwenden der Migrationen:
Um die Migrationen aus diesem Verzeichnis anzuwenden, führst du
flask db upgrade
mit dem--directory
-Parameter aus:2. Integration in dein
run.py
-Skript:Wenn du möchtest, dass die Migrationen in deinem benutzerdefinierten Verzeichnis automatisch beim Start angewendet werden, kannst du den Pfad in deinem Python-Skript explizit angeben.
Hier ein aktualisiertes Beispiel für dein
run.py
:3. Docker-Integration:
Wenn du deine Docker-Container startest, kannst du sicherstellen, dass der Migrationspfad auch in Docker funktioniert. Der Befehl zum Anwenden der Migrationen bleibt derselbe, da du den
--directory
-Parameter angibst.Beispiel
docker-compose.yml
:Wir wollen es in die provision.sh packen und dafür muss dort ein extra Step für die migrations hinzugefügt werden