/MIZDB

Primary LanguagePython

MIZDB - Musikarchiv Datenbank

Datenbankverwaltung für das Archiv für populäre Musik im Ruhrgebiet e.V.

Links:

Installation

Das Script installiert Docker und lädt MIZDB in einen Unterordner im gegenwärtigen Verzeichnis herunter. Beim Aufruf des Scripts kann eine Backup-Datei der Datenbank übergeben werden (unten: database_backup), worauf die Datenbank in der neuen Installation sofort wiederhergestellt wird.

sudo apt update -qq && sudo apt install -qq -y curl
curl -fsSL https://raw.githubusercontent.com/Actionb/MIZDB/master/scripts/get-mizdb.sh -o /tmp/get-mizdb.sh
sh /tmp/get-mizdb.sh database_backup
rm /tmp/get-mizdb.sh

Siehe auch:

Verwaltung

Für die Verwaltung der Anwendung steht das Programm mizdb.sh im MIZDB Verzeichnis zur Verfügung:

cd MIZDB_VERZEICHNIS && bash mizdb.sh help

Wurde MIZDB mithilfe des Scripts oben erstellt, so steht systemweit der Befehl mizdb zu Verfügung:

mizdb help

Dieser kann anstelle von bash mizdb.sh verwendet werden (also z.B. mizdb reload anstelle von bash mizdb.sh reload).

Weitere Informationen mit einer Auflistung der verfügbaren Befehle gibt es in der Dokumentation:

Development

Note

Beachte die build prerequisites/requirements für psycopg2 und mod_wsgi:

Repository klonen:

git clone https://github.com/Actionb/MIZDB MIZDB
cd MIZDB

Virtuelle Umgebung erstellen:

python -m venv .venv
echo 'export "DJANGO_DEVELOPMENT=1"' >> .venv/bin/activate
. .venv/bin/activate

Project Abhängigkeiten und Git Hooks installieren:

pip install -r requirements/dev.txt
npm install
pre-commit install

Installation mit uv

uv installieren: https://docs.astral.sh/uv/getting-started/installation/

Dann:

git clone https://github.com/Actionb/MIZDB MIZDB
cd MIZDB
uv venv 
echo 'export "DJANGO_DEVELOPMENT=1"' >> .venv/bin/activate
. .venv/bin/activate
uv pip install -r requirements/dev.txt
npm install
pre-commit install

Tests

Einfacher Testdurchlauf

Mit coverage und ohne Playwright Tests:

pytest -n auto -m "not e2e" --cov=. --cov-report html  --cov-branch tests

Playwright

Die Playwright Browser müssen installiert sein:

playwright install

Dann Playwright Tests auszuführen:

pytest -n auto --browser firefox tests/test_site/test_playwright

Tox

Teste MIZDB mit verschiedenen Python-Versionen und den Produktions-Settings:

tox

CSS, Sass & Theme

Benutze

npm run sass-build

oder

npm run sass-watch

Um die CSS Dateien zu erstellen.

Links:

Hilfe Seiten erzeugen

Um die Hilfe Seiten der MIZDB "site" app zu erzeugen, benutze:

mkdocs build

Ein post build hook erzeugt aus den mkdocs html Dateien Django Templates und legt sie unter dbentry/site/templates/help ab.

Release erstellen

  1. Git-Flow release branch erzeugen:

    git flow release start '1.0.1'

    (siehe hier für mehr Informationen)

  2. Versionsdatei aktualisieren.
    Dazu können Git-Flow Hooks verwendet werden: https://github.com/jaspernbrouwer/git-flow-hooks. Der folgende Befehl installiert die notwendigen Hooks im lokalen git Verzeichnis:

    ./scripts/git-flow-hooks.sh

    Siehe auch: Git-Flow Hooks with smartgit

    Alternativ steht ein Skript zur Verfügung, um die Versionsdatei zu aktualisieren:

    ./scripts/bump_version.py {major,minor,patch}
  3. release branch beenden:

    git flow release finish '1.0.1'

Note

Wird git-flow-hooks benutzt, um die Versionsdatei zu aktualisieren, muss bei dem Befehl git flow release start keine Version angegeben werden; git-flow-hooks ermittelt die neue Version aus der Versionsdatei.