Prisma und SQLite

Prisma ist ein ORM für Node.js, es unterstützt die Datenbanken PostgreSQL, MySQL, SQLite, MongoDB, Microsoft SQL Server sowie einige Cloud/Edge-Hoster. Automatische Migrationen und die übersichtliche Definition der Datenbankstruktur in einem prisma.schema sind dabei die herausragenden Features. Dabei werden auch Typen/Interfaces der Daten für TypeScript bereitgestellt. Die Unterstützung der unterschiedlichen Prisma-Features ist dabei von Datenbank zu Datenbank unterschiedlich und nicht ausreichend dokumentiert. Dadurch wird die Entwicklung mit Prisma zum Glücksspiel, wenn man erst nach Langer Recherche in Github Issues herausfindet, dass Feature X für die Datenbank Y nicht implementiert wurde. Dabei handelt es sich nicht etwa nur um exotische Funktionen, nein auch viele elementare Funktionen sind nicht verfügbar. Ein Wechsel der verwendeten Datenbanktechnologie ist damit in der Praxis quasi ausgeschlossen. Wer denkt, er kann für die lokale Entwicklung auf eine SQLite und für das Produktiv-System auf eine MySQL-Datenbank setzen, muss mit massiven Problemen rechnen.

Folgende Probleme existieren bei der Entwicklung von Anwendungen mit SQLite:

  • createMany wird nicht unterstützt, Einträge können nur einzeln erstellt werden.
  • Defektes Date Mapping. Das Sortieren nach Datum ist nicht über die ORM Funktionalität möglich, da das Datumsformat nicht korrekt implementiert ist. Dieses Problem besteht schon seit 2021 und ist nicht zu entschuldigen.
  • Kein Mapping von ENUMs. ENUMs werden nicht nativ von SQLite unterstützt.
  • Kein JSON-Support, obwohl viele Funktionen unterstützt sind.

Bei der Verwendung von SQLite würde ich aufgrund dieser Probleme dazu raten, ein anderes ORM-System zu verwenden.

Kommentar schreiben: