Comment réutiliser des valeurs SQL entre préproduction et production sans réécrire la requête ?
Changez les limites, les filtres et les valeurs de test entre préproduction et production sans réécrire la requête. Les valeurs restent dans le panneau Variables et suivent l’environnement de l’onglet.
En Préproduction, la même requête veut un LIMIT petit, un id de test, un e-mail fictif ou un filtre plus serré. En Production, ces valeurs sont différentes.
Sans un endroit où les garder, le nombre est collé dans chaque instruction. Quand l’onglet passe de la Préproduction à la Production, vous le changez à la main. Un bind natif du SQL ($1, ?) remplit un paramètre pour cette exécution. Il ne garde pas une valeur par environnement et ne suit pas l’onglet.
Kerry Studio le traite avec des variables dans le SQL : un nom associé à une valeur, à un littéral, à un générateur $faker. ou à un fragment SQL. La valeur vit dans le panneau Variables. À l’exécution, Kerry échange le jeton et envoie à la base le SQL déjà résolu. La requête dans l’éditeur reste la même.
Ce n’est pas un bind natif du moteur. C’est une substitution dans le client. La base reçoit le SQL avec la valeur déjà en place.
Comment créer la variable
Il vous faut un workspace ouvert et un onglet SQL.
Depuis l’éditeur
- Écrivez
:variabledans la requête, par exemple:limite. - Appuyez sur espace.
- Cliquez sur le + à côté du nom.
- Le panneau Variables s’ouvre sur cette ligne. Saisissez la valeur et le type, s’il ne s’agit pas de texte.
Depuis le panneau
- Ouvrez le panneau Variables : l’icône de la barre latérale droite, ou la palette (⌘K / CtrlK) → Ouvrir le panneau Variables.
- Cliquez sur Nouvelle variable.
- Saisissez l’identifiant sans le
:. - Choisissez le type, la portée (Local ou Global) et l’environnement dont vous éditez la valeur (Par défaut ou un environnement du projet).
- Renseignez la valeur. Dans l’éditeur, utilisez
:variable.
Local s’applique à un workspace. Global s’applique à tous.
Une valeur par environnement
Il y a deux façons d’écrire la variable.
:variable, par exemple :limite, utilise la valeur de l’environnement de l’onglet. Si cet environnement est vide dans le panneau, c’est la valeur Par défaut qui entre.
:variable:environnement, par exemple :limite:production, utilise la valeur de cet environnement même si l’onglet est sur un autre. Le : se place seulement entre le nom et l’environnement.
En Postgres, deux deux-points d’affilée sont un cast : :limite::text signifie « la variable limite, convertie en text ». Cela ne choisit pas un environnement. Pour la Production, utilisez :limite:production.
Dans le panneau, une ligne est un nom. Le sélecteur d’environnement ne crée pas une autre variable. Il change seulement quelle valeur de cette ligne vous éditez.
Si limite vaut 50 en Préproduction et 500 en Production :
| Dans le SQL | Onglet sur | La base reçoit |
|---|---|---|
:limite | Préproduction | 50 |
:limite:production | Préproduction | 500 |
SELECT id, total
FROM commandes
WHERE total >= :limite
ORDER BY total DESC;Si vous changez la valeur dans le panneau, la requête reste la même. Si l’onglet passe de Préproduction à Production et que le SQL utilise :limite sans environnement figé, la base reçoit 500 à la place de 50.
Texte, nombre ou un fragment SQL
| Type | Ce que la base reçoit |
|---|---|
| Texte, Nombre, Booléen, Null | Le littéral correspondant |
| SQL | Fragment dans la requête sans guillemets |
Le type SQL stocke un WHERE, un JOIN ou une expression et l’insère dans l’instruction sans guillemets. Si plusieurs requêtes partagent le même critère d’actifs :
:filtre_actifs (SQL) = status = 'active'
SELECT *
FROM commandes
WHERE :filtre_actifs;Générer des données de test avec $faker.
$faker. dans la valeur de la variable génère une donnée nouvelle à chaque exécution. Un e-mail de test, par exemple :
:email_test (Texte) = $faker.internet.email
INSERT INTO clients (email)
VALUES (:email_test);$faker. fonctionne aussi directement dans le SQL ($faker.person.fullName). Sur la variable, le même générateur reste réutilisable. Les commentaires et les chaînes dans le SQL ne sont pas traités comme des variables.