Générez des types TypeScript à partir de votre base de données
Une commande transforme vos tables en types. Votre éditeur rejette alors une mauvaise colonne ou une mauvaise valeur avant d'exécuter quoi que ce soit.
1. Générez le fichier
L'outil lit le schéma de votre projet et écrit le fichier. Sans --url et --key, il recherche AURABASE_URL et AURABASE_ANON_KEY (également NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL et AURABASE_SERVICE_ROLE_KEY) dans votre environnement et dans .env, .env.local et .env.development.
Sur un projet avec deux tables et deux fonctions, il a répondu :
Réexécutez-le chaque fois que le schéma change. Ajoutez --schema <name> pour un schéma autre que public et --type-name pour renommer le type principal.
2. Utilisez-le avec le client
Le type généré décrit chaque table avec Row, Insert et Update. Sur un fichier réel, le compilateur a donné ces résultats :
Dans Insert, une colonne avec une colonne par défaut ou nullable est facultative. Dans Update, chaque colonne est facultative.
3. Types de lignes pour vos composants
Enums<'name'> donne les valeurs d'une énumération de base de données.
4. Ce qui est vérifié
- Une table qui ne figure pas dans le fichier généré est et non rejetée :
aura.from('anything')est toujours compilée et ses lignes ne sont pas typées. - Les fonctions apparaissent sous
Functionsavec leurs arguments. Une fonction qui renvoie un type de ligne personnalisé s'affiche sous la formeJsonouunknown. - Le fichier reflète le schéma au moment où vous l'avez généré. Une colonne ajoutée ultérieurement est inconnue des types jusqu'à ce que vous exécutiez à nouveau l'outil.
- Utilisez la clé publique pour générer les types, sauf si certaines tables y sont masquées. Ne validez jamais une clé
service_role.