De inhoud van de "cmd"
. van het bouwsysteem array moet zijn wat u op de opdrachtregel zou typen om die opdracht uit te voeren - DB's zijn geen uitzondering. Ik weet niets over Postgres internals, maar als je de naam van de DB op de opdrachtregel moet specificeren, dan moet je dat in het buildsysteem doen.
Er is echter een alternatief voor het rondslingeren van mogelijk tientallen buildsystemen - het definiëren van het buildsysteem in een .sublime-project
het dossier. Volgens de documentatie
, het .sublime-project
bestand kan drie basisgroepen hebben:"folders"
, "settings"
, en "build_systems"
. Om een project aan te maken, opent u de map(pen) die u in de zijbalk wilt opnemen en klikt u vervolgens op Project -> Save Project As...
. Zet de naam in en bewaar het op een logische plaats. Selecteer vervolgens Project -> Edit Project
, waarmee het .sublime-project
. wordt geopend bestand met JSON-syntaxis. Het zou er ongeveer zo uit moeten zien:
{
"folders":
[
{
"follow_symlinks": true,
"path": "C:\\Users\\MattDMo\\Development\\DB\\my_postgres_db1"
// by default, Sublime uses double-backslashes :(
}
],
}
Voeg een "build_systems":
identifier na het afsluitende vierkante haakje van "folders"
, en zet in je bouwsysteem:
{
"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
}
]
}
en je zou helemaal klaar moeten zijn. Nu u uw sjabloon hebt, kunt u zoveel kopieën van het bestand maken als u wilt, de DB-naam en de systeemnaam naar behoefte aanpassen. De "name"
veld zal verschijnen in het Tools -> Build System
menu, en je kunt het direct selecteren of Automatic
. gebruiken als je geen andere bouwsystemen hebt met "selector": "source.postgresql"
erin.
Het brengt wel wat werk met zich mee voor elke DB die je hebt, en je moet niet vergeten om het actieve project te wisselen wanneer je van DB wisselt (ik houd gewoon één venster open voor elk project dat ik actief heb), maar verder is het zou je probleem moeten oplossen. U ziet dat ik de "env": {"PGPASSWORD": "password"},
heb verwijderd regel (het had in ieder geval tussen vierkante haken moeten staan) en voegde in plaats daarvan de -W
. toe opdrachtregeloptie naar psql.exe
om het wachtwoord te vragen. Er is geen manier om .sublime-project
te versleutelen bestanden, zodat iedereen die ze kan lezen het wachtwoord van uw server kan zien. Ik weet niet of ik "shell": true
de omgevingsvariabelen van je shell importeert of niet, ik vermoed van niet, maar je zult het moeten testen. Het is één ding om in te voeren bij het uitvoeren van het bouwsysteem, maar het zal uw algehele systeem veiliger maken. Natuurlijk kun je teruggaan als je de extra beveiliging niet wilt/nodig hebt, maar als het een openbare server is, zou ik dat niet doen.
Veel succes!