quantum check
Tradução automática
Esta página foi traduzida automaticamente do inglês e ainda não foi revisada por um falante nativo; correções são bem-vindas no GitHub. Se algo não bater, vale o original em inglês.
O quantum check lê o projeto como o servidor leria e informa, com arquivo e linha, o que de outro modo só apareceria quando alguém abrisse a página:
- uma página que não passa pelo parser;
- uma
q:querycujo SQL não compila contra o seu banco de dados — uma tabela ou coluna que não existe, um erro de sintaxe — com a mensagem do próprio banco; - um
{query.field}que a página lê e que a consulta não retorna: diretamente ({post.title}), por umq:loopsobre ela ({row.title}), por umui:table/ui:listcomsource="{query}", ou por um<ui:column key>.
quantum migrate up # the database the pages run against
quantum checkcomponents/index.q:42: <q:query name="tasks">: no such column: titel
components/index.q:86: {tasks.titl}: query "tasks" returns no column "titl" (columns: id, title, priority, done)
2 problem(s) — 1 file(s), 5 query(ies) checked against the database.Ele termina com 1 quando há um problema, então cabe no CI depois de quantum migrate up.
Nada é executado
Cada consulta é compilada pelo banco de dados (EXPLAIN), nunca executada; as colunas de um SELECT vêm de executá-lo com LIMIT 0, que não retorna nenhuma linha. O banco é aberto somente para leitura. Um DELETE numa página é verificado, e não apaga nada.
O que ele não verifica
- Uma fonte de dados que ele não consegue abrir vira uma
[NOTE], não um OK silencioso: um arquivo SQLite que ainda não existe (rodequantum migrate up), ou um driver que não seja SQLite (ainda não suportado). q:query datasource="knowledge:…"(RAG) e consultas de consultas não são SQL num banco de dados, e são ignoradas.