@northware/database
wird die Verbindung zu den Neon Databases hergestellt. Außerdem sind hier die Drizzle Schema-Dateien der Datenbank gespeichert.
client
und db
unter der Adresse @northware/database/connect
womit die Verbindung zur Datenbank hergestellt werden kann.
/schema
gespeichert. Das gesamte Database-Schema wird auf mehrere Dateien verteilt,
um eine möglichst hohe Übersichtlichkeit zu erreichen. Damit wird diesem Ansatz gefolgt.
Das Schma soll folgendermaßen aufgeteilt werden:
drizzle.config.ts
konfiguriert.
Hier ist definiert, dass alle Schema-Dateien im ./schema
Ordner abgelegt sind. Außerdem ist hier definiert, dass die von Drizzle generierten Migrations-Dateien im
Ordner ./drizzle-migrations
abgelegt werden sollen. Da diese Dateien nur temporär benötigt werden, wird der Ordner drizzle-migrations
von Git ignoriert.
Die drizzle.config.ts
greift auf die Environment-Variable NW_API
zu. Diese Variable muss innerhalb einer ./.env.local
im @northware/database
Package definiert werden und
die Verbindungs-URL zur Datenbank enthalten.
/packages/database
ausgeführt werden.
Es gibt unterschiedliche drizzle-kit
Commands zur Kommunikation zwischen Codebase und Database
drizzle-kit generate
: Generiert eine .sql
Datei, die das Datenbank-Schema als SQL-Code enthält.drizzle-kit migrate
: Migriert das SQL-Schema, das mit drizzle-kit generate
erstellt wurde in die Datenbank.drizzle-kit pull
: Lädt das aktuelle Schema der Datenbank als schema.ts
Datei in den drizzle-migrations
Ordner.
So kann sichergestellt werden, dass Datenbank und Codebase das selbe Schema enthalten. Dadurch, dass das Schema automatisch erstellt wird, wird das Schema ggf. nochmal verbessert
definiert. Die schema.ts
enthält alle Tabellen und sollte in eine Javascript-Datei umgewandelt werden, bevor sie in den /schema
Ordner aufgenommen wird.
Mit einigen Konfigurationen kann beeinflusst werden,
welcher Output mit drizzle-kit pull
erstellt wird.drizzle-kit push
: Kombiniert drizzle-kit generate
und drizzle-kit migrate
ohne SQL-Dateien zu generieren.
Dieser Command kann verwendet werden, wenn ein Schema Update mal schnell gehen muss.drizzle-kit studio
: Startet Drizzle Studio lokal unter
local.drizzle.studio. Drizzle Studio ist der Database Browser von Drizzle.
drizzle-kit check
: Überprüft die Konsistenz (Einheitlichkeit) der generierten SQL Migrationendrizzle-kit up
: Upgrade des Drizzle Schema, wenn es eine neue Version von Drizzle gibt