Elegante SQLite-Multitenancy in Rails

2025-04-27

Dieser Artikel beschreibt die Erfahrung beim Erstellen einer Multi-Tenant-Anwendung mit Rails, wobei jeder Tenant eine eigene isolierte SQLite-Datenbank besitzt. Der Autor verwendete zunächst die traditionelle Datenbankverbindungsverwaltung, was unter hoher Last zu Verbindungsfehlern führte. Nach eingehender Recherche verwendete der Autor schließlich die `connected_to`-Methode von Rails 6+ in Kombination mit einer benutzerdefinierten Middleware, um einen sicheren und effizienten Wechsel zwischen Tenant-Datenbanken zu erreichen, wobei die Probleme von Multithreading und Verbindungspool-Verwaltung clever gelöst wurden. Zusätzlich werden Tipps zum Umgang mit Rack-Streaming-Antwortkörpern geteilt. Dieser Artikel ist wertvoll für die Erstellung von performanten und skalierbaren Multi-Tenant-Anwendungen.

Entwicklung