CUPUM / nplex

Plateforme de valorisation de petits projets d'architecture et d'aménagement à Montréal.
https://www.nplex.design
4 stars 0 forks source link

Epic: Switch to using drizzle-orm in lieu of supabase-js #165

Closed iolyd closed 11 months ago

iolyd commented 1 year ago

Epic Description

Supabase's migration workflow and the use of the js client is getting increasingly frustrating, and error prone, and the coupling of db schemas with frontend types feels less and less tight. The current type-gen workflow requires quite a lot of type patching and the query building experience is far from ideal.

Drizzle-orm appears to be a favorable approach to tighten frontend/backend schema code and migrations without confining schema definitions inside hermetic and frontend-decoupled .sql files.

Read:

List of Tasks (Complete in order)

iolyd commented 1 year ago

Note: Some custom postgres types (ex.: postgis.geometry) might prove a bit more cumbersome to use:

https://github.com/drizzle-team/drizzle-orm/issues/671.

frroye commented 1 year ago

Salut @iolyd !

J'ai commencé à explorer drizzle-orm, un peu comment ça marche et ses alternatives (kysely entre autres), mais je pense que ça ne fonctionne que si on a une connexion directe à la base de données. Alors même si le l'API CKAN de la ville de Montréal + l'extension DataStore permettent d'envoyer des requêtes sql, pour l'instant je ne pense pas que les query builder de drizzle et même prisma sont conçus pour ça, sachant en plus que la réponse est retournée en json, si j'ai bien compris.

Je peux continuer à explorer s'il n'y a pas des librairies qui aident à gérer les requêtes/réponses aux API CKAN en particulier (construction des requêtes qui incluent des requêtes sql et gestion des réponses en json)?

iolyd commented 1 year ago

Pour suivi (en retard), je risque d'opter pour le standalone query builder de drizzle et implémenter un simili client qui s'occupe de gérer l'url de base pour chaque db (Montréal, Québec, Canada, et autres dans le futur).

iolyd commented 11 months ago

Je ferme ce issue car la nouvelle version utilise maintenant drizzle tel que prévu. La conception des query helpers pour les données externes devrait relever d'un autre issue.