PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Posso obter o Ecto para registrar SQL bruto?


Ecto usa apenas declarações preparadas. Ao usar a sintaxe de consulta ecto, a introdução de injeção de SQL não é possível. A sintaxe de consulta verifica em tempo de compilação que nenhuma injeção de SQL é possível.

Mostrar exatamente as consultas executadas pode ser difícil devido a alguns motivos:
  • Postgrex (e, portanto, Ecto) usa o protocolo binário postgresql (em vez do protocolo de texto mais comum, mas menos eficiente), então o PREPARE query nunca existe realmente como uma string.
  • Na maioria dos casos, tudo o que você veria seria um PREPARE 64237612638712636123(...) AS ... inicial e depois muito EXECUTE 64237612638712636123(...) o que não é tão útil. Tentar relacionar um com o outro seria horrível.

Pela minha experiência, a maioria dos softwares desse tipo usa instruções prepare e as registra em vez de consultas brutas, pois é muito mais útil para entender o comportamento do sistema.