O conteúdo do
"cmd"
do sistema de compilação array precisa ser o que você digitaria na linha de comando para executar esse comando - os bancos de dados não são exceção. Eu não sei nada sobre os internos do Postgres, mas se você precisar especificar o nome do banco de dados na linha de comando, terá que fazê-lo no sistema de compilação. No entanto, existe uma alternativa para ter potencialmente dezenas de sistemas de compilação espalhados - definindo o sistema de compilação em um
.sublime-project
Arquivo. De acordo com a documentação
, o .sublime-project
arquivo pode ter três grupos básicos:"folders"
, "settings"
e "build_systems"
. Para criar um projeto, abra a(s) pasta(s) que deseja incluir na barra lateral e clique em Project -> Save Project As...
. Coloque em seu nome e salve-o em um lugar lógico. Em seguida, selecione Project -> Edit Project
, que abrirá o .sublime-project
arquivo com sintaxe JSON. Deve ser algo assim:{
"folders":
[
{
"follow_symlinks": true,
"path": "C:\\Users\\MattDMo\\Development\\DB\\my_postgres_db1"
// by default, Sublime uses double-backslashes :(
}
],
}
Adicione um
"build_systems":
identificador após o colchete de fechamento de "folders"
, e coloque em seu sistema de compilação:{
"folders":
[
{
"follow_symlinks": true,
"path": "C:\\Users\\MattDMo\\Development\\DB\\my_postgres_db1"
}
],
"build_systems":
[
{
"name": "my_postgres_db1",
"cmd": ["C:/PostgreSQL/9.3/bin/psql.exe", "-W", "-U", "postgres", "-d", "my_postgres_db1", "-f", "$file"],
// you can use either double backslashes or forward slashes on Windows. Forward is better :)
"selector": "source.postgresql",
"shell": true
}
]
}
e você deve estar tudo pronto. Agora que você tem seu modelo, pode fazer quantas cópias do arquivo desejar, personalizando o nome do banco de dados e o nome do sistema de compilação conforme necessário. O
"name"
será exibido em Tools -> Build System
menu e você pode selecioná-lo diretamente ou usar Automatic
se você não tiver nenhum outro sistema de compilação com "selector": "source.postgresql"
neles. Isso envolve um pouco de trabalho para cada banco de dados que você tem, e você terá que se lembrar de alternar o projeto ativo ao alternar os bancos de dados (apenas mantenho uma janela aberta para cada projeto ativo), mas fora isso, deve resolver seu problema. Você notará que eu removi o
"env": {"PGPASSWORD": "password"},
linha (deveria estar entre colchetes, de qualquer maneira) e, em vez disso, adicionei o -W
opção de linha de comando para psql.exe
para solicitar a senha. Não há como criptografar .sublime-project
arquivos, então qualquer pessoa que possa lê-los verá a senha do seu servidor. Não sei se usando "shell": true
importa ou não as variáveis de ambiente do seu shell, suspeito que não, mas você terá que testar. Será uma coisa a inserir ao executar o sistema de compilação, mas tornará seu sistema geral mais seguro. Claro, sinta-se à vontade para reverter se você não quiser / precisar de segurança extra, mas se for um servidor público, eu não faria. Boa sorte!