Como reutilizar valores no SQL em homologação e produção sem reescrever a query?
Troque limites, filtros e valores de teste entre Homologação e Produção sem reescrever a query. Os valores ficam no painel Variáveis e acompanham o ambiente da aba.
Em Homologação a mesma consulta pede um LIMIT pequeno, um id de teste, um e-mail falso ou um filtro mais apertado. Em Produção esses valores são outros.
Sem um lugar para guardá-los, o número vai colado em cada statement. Quando a aba passa de Homologação para Produção, você altera à mão. Um bind nativo do SQL ($1, ?) resolve um parâmetro naquela execução. Ele não guarda um valor por ambiente e não acompanha a aba.
O Kerry Studio trata isso com variáveis no SQL: um nome associado a um valor, a um literal, a um gerador $faker. ou a um trecho de SQL. O valor fica no painel Variáveis. Na execução, o Kerry troca o token e envia ao banco o SQL já resolvido. A query no editor continua a mesma.
Isso não é bind nativo do motor. É substituição no cliente. O banco recebe o SQL com o valor já no lugar.
Como criar a variável
Você precisa de um workspace aberto e de uma aba SQL.
Pelo editor
- Escreva
:variavelna query, por exemplo:limite. - Pressione espaço.
- Clique no + ao lado do nome.
- O painel Variáveis abre nessa linha. Informe o valor e o tipo, se não for texto.
Pelo painel
- Abra o painel Variáveis: ícone na barra lateral direita, ou paleta (⌘K / CtrlK) → Abrir Painel de Variáveis.
- Clique em Nova Variável.
- Informe o identificador sem o
:. - Escolha tipo, escopo (Local ou Global) e o ambiente cujo valor você está editando (Padrão ou um ambiente do projeto).
- Preencha o valor. No editor, use
:variavel.
Local vale num workspace. Global vale em todos.
Um valor por ambiente
Há dois jeitos de escrever a variável.
:variavel, por exemplo :limite, usa o valor do ambiente em que a aba está. Se nesse ambiente o painel estiver vazio, entra o valor Padrão.
:variavel:ambiente, por exemplo :limite:production, usa o valor daquele ambiente mesmo que a aba esteja em outro. O : fica só entre o nome e o ambiente.
No Postgres, dois pontos seguidos são cast: :limite::text significa “a variável limite, convertida para text”. Isso não escolhe um ambiente. Para Produção, use :limite:production.
No painel, uma linha é um nome. O seletor de ambiente não cria outra variável. Ele só troca qual valor daquela linha você está editando.
Se limite vale 50 em Homologação e 500 em Produção:
| No SQL | Aba em | O banco recebe |
|---|---|---|
:limite | Homologação | 50 |
:limite:production | Homologação | 500 |
SELECT id, total
FROM pedidos
WHERE total >= :limite
ORDER BY total DESC;Se você alterar o valor no painel, a query continua a mesma. Se a aba passar de Homologação para Produção e o SQL usar :limite sem ambiente travado, o banco recebe 500 no lugar de 50.
Texto, número ou um trecho de SQL
| Tipo | O que o banco recebe |
|---|---|
| Texto, Número, Booleano, Nulo | Literal correspondente |
| SQL | Trecho na query sem aspas |
Tipo SQL guarda um WHERE, um JOIN ou uma expressão e encaixa na statement sem aspas. Se várias queries compartilham o mesmo critério de ativos:
:filtro_ativos (SQL) = status = 'active'
SELECT *
FROM pedidos
WHERE :filtro_ativos;Gerar dados de teste com $faker.
$faker. no valor da variável gera um dado novo a cada execução. Um e-mail de teste, por exemplo:
:email_teste (Texto) = $faker.internet.email
INSERT INTO clientes (email)
VALUES (:email_teste);$faker. também funciona direto no SQL ($faker.person.fullName). Na variável, o mesmo gerador fica reutilizável. Comentários e strings no SQL não são tratados como variável.