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

Como fazer um sistema de compilação para PostgreSQL


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!