¿Cómo reutilizar valores en el SQL entre homologación y producción sin reescribir la consulta?

Cambia límites, filtros y valores de prueba entre Homologación y Producción sin reescribir la consulta. Los valores viven en el panel Variables y siguen el entorno de la pestaña.

En Homologación la misma consulta pide un LIMIT pequeño, un id de prueba, un correo falso o un filtro más estrecho. En Producción esos valores son otros.

Sin un sitio donde guardarlos, el número va pegado en cada statement. Cuando la pestaña pasa de Homologación a Producción, lo cambias a mano. Un bind nativo del SQL ($1, ?) resuelve un parámetro en esa ejecución. No guarda un valor por entorno y no sigue la pestaña.

Kerry Studio lo trata con variables en el SQL: un nombre asociado a un valor, a un literal, a un generador $faker. o a un trozo de SQL. El valor vive en el panel Variables. En la ejecución, Kerry cambia el token y envía a la base el SQL ya resuelto. La consulta en el editor sigue igual.

Esto no es un bind nativo del motor. Es sustitución en el cliente. La base recibe el SQL con el valor ya en su sitio.

Cómo crear la variable

Necesitas un workspace abierto y una pestaña SQL.

Desde el editor

  1. Escribe :variable en la consulta, por ejemplo :cupo.
  2. Pulsa espacio.
  3. Haz clic en el + junto al nombre.
  4. El panel Variables se abre en esa fila. Indica el valor y el tipo, si no es texto.

Desde el panel

  1. Abre el panel Variables: el icono de la barra lateral derecha, o la paleta (⌘K / CtrlK) → Abrir panel de variables.
  2. Haz clic en Nueva variable.
  3. Indica el identificador sin el :.
  4. Elige tipo, alcance (Local o Global) y el entorno cuyo valor estás editando (Por defecto o un entorno del proyecto).
  5. Rellena el valor. En el editor, usa :variable.

Local vale en un workspace. Global vale en todos.

Un valor por entorno

Hay dos formas de escribir la variable.

:variable, por ejemplo :cupo, usa el valor del entorno en el que está la pestaña. Si en ese entorno el panel está vacío, entra el valor Por defecto.

:variable:entorno, por ejemplo :cupo:production, usa el valor de ese entorno aunque la pestaña esté en otro. El : queda solo entre el nombre y el entorno.

En Postgres, dos puntos seguidos son un cast: :cupo::text significa “la variable cupo, convertida a text”. Eso no elige un entorno. Para Producción, usa :cupo:production.

En el panel, una fila es un nombre. El selector de entorno no crea otra variable. Solo cambia qué valor de esa fila estás editando.

Si cupo vale 50 en Homologación y 500 en Producción:

En el SQLPestaña enLa base recibe
:cupoHomologación50
:cupo:productionHomologación500
sql
SELECT id, total
FROM pedidos
WHERE total >= :cupo
ORDER BY total DESC;

Si cambias el valor en el panel, la consulta sigue igual. Si la pestaña pasa de Homologación a Producción y el SQL usa :cupo sin entorno fijado, la base recibe 500 en lugar de 50.

Texto, número o un trozo de SQL

TipoLo que recibe la base
Texto, Número, Booleano, NuloLiteral correspondiente
SQLTrozo en la consulta sin comillas

El tipo SQL guarda un WHERE, un JOIN o una expresión y lo encaja en el statement sin comillas. Si varias consultas comparten el mismo criterio de activos:

:filtro_activos (SQL) = status = 'active'

sql
SELECT *
FROM pedidos
WHERE :filtro_activos;

Generar datos de prueba con $faker.

$faker. en el valor de la variable genera un dato nuevo en cada ejecución. Un correo de prueba, por ejemplo:

:email_prueba (Texto) = $faker.internet.email

sql
INSERT INTO clientes (email)
VALUES (:email_prueba);

$faker. también funciona directamente en el SQL ($faker.person.fullName). En la variable, el mismo generador queda reutilizable. Los comentarios y las cadenas en el SQL no se tratan como variable.