PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come creare un sistema di compilazione per PostgreSQL

Il contenuto del "cmd" del sistema di compilazione l'array deve essere quello che digiteresti sulla riga di comando per eseguire quel comando:i DB non fanno eccezione. Non so nulla degli interni di Postgres, ma se devi specificare il nome del DB sulla riga di comando, dovrai farlo nel sistema di build.

Tuttavia, esiste un'alternativa all'avere potenzialmente dozzine di sistemi di compilazione in giro:definire il sistema di compilazione in un .sublime-project file. Secondo la documentazione , il .sublime-project il file può avere tre gruppi di base:"folders" , "settings" e "build_systems" . Per creare un progetto, apri le cartelle che desideri includere nella barra laterale, quindi fai clic su Project -> Save Project As... . Inserisci il suo nome e salvalo in un posto logico. Quindi, seleziona Project -> Edit Project , che aprirà il .sublime-project file con sintassi JSON. Dovrebbe assomigliare a questo:

{
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "C:\\Users\\MattDMo\\Development\\DB\\my_postgres_db1"
            // by default, Sublime uses double-backslashes :(
        }
    ],
}

Aggiungi un "build_systems": identificatore dopo la parentesi quadra di chiusura da "folders" e inserisci il tuo sistema di compilazione:

{
    "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 dovresti essere tutto pronto. Ora che hai il tuo modello, puoi creare tutte le copie del file che desideri, personalizzando il nome del DB e il nome del sistema di build secondo necessità. Il "name" verrà visualizzato in Tools -> Build System menu e puoi selezionarlo direttamente o utilizzare Automatic se non hai altri sistemi di compilazione con "selector": "source.postgresql" in essi.

Implica un po' di lavoro per ogni DB che hai e dovrai ricordarti di cambiare il progetto attivo quando cambi DB (mantengo solo una finestra aperta per ogni progetto che ho attivo), ma a parte questo dovrebbe risolvere il tuo problema. Noterai che ho rimosso il "env": {"PGPASSWORD": "password"}, riga (dovrebbe essere comunque tra parentesi quadre) e invece ha aggiunto il -W opzione della riga di comando su psql.exe per richiedere la password. Non c'è modo di crittografare .sublime-project file, quindi chiunque possa leggerli vedrà la password del tuo server. Non so se si utilizza "shell": true importa o meno le variabili di ambiente della tua shell, sospetto che non lo faccia, ma dovrai testare. Sarà una cosa da inserire durante l'esecuzione del sistema di compilazione, ma renderà il tuo sistema generale più sicuro. Ovviamente, sentiti libero di ripristinare se non vuoi/hai bisogno di maggiore sicurezza, ma se si tratta di un server pubblico non lo farei.

Buona fortuna!