Você não pode executar instruções SQL diretamente de um script bash. Use psql
para enviar o comando para o servidor de banco de dados. Se você tiver uma única (ou algumas) instruções SQL para executar, você pode fazer assim
psql -d YOUR_DB_NAME -c "YOUR_SQL_STATEMENT"
Certifique-se de que sua instrução SQL não inclua aspas ou as escape adequadamente. Se você tem muitas instruções SQL em um arquivo, você pode executar todas elas como esta
psql -d YOUR_DB_NAME -f FILENAME
Acima, YOUR_DB_NAME deve ser substituído pelo nome do banco de dados, YOUR_SQL_STATEMENT pela instrução SQL que você deseja executar e FILENAME é o nome do arquivo com instruções SQL a serem executadas.
Se você precisar especificar parâmetros extras como nome de usuário, verifique a mensagem de uso do comando exibida com psql -?
.
Além disso, observe que sua sintaxe para DROP SCHEMA
está incorreta. Deve ser
DROP SCHEMA IF EXISTS schema_name;
Veja também esta documentação .