Le contenu du "cmd"
du système de construction array doit être ce que vous tapez sur la ligne de commande pour exécuter cette commande - les bases de données ne font pas exception. Je ne sais rien des composants internes de Postgres, mais si vous devez spécifier le nom de la base de données sur la ligne de commande, vous devrez le faire dans le système de construction.
Cependant, il existe une alternative pour avoir potentiellement des dizaines de systèmes de construction qui traînent - définir le système de construction dans un .sublime-project
dossier. Selon la documentation
, le .sublime-project
le fichier peut avoir trois groupes de base :"folders"
, "settings"
, et "build_systems"
. Pour créer un projet, ouvrez le ou les dossiers que vous souhaitez inclure dans la barre latérale, puis cliquez sur Project -> Save Project As...
. Mettez son nom et enregistrez-le dans un endroit logique. Ensuite, sélectionnez Project -> Edit Project
, qui ouvrira le .sublime-project
fichier avec la syntaxe JSON. Cela devrait ressembler à ceci :
{
"folders":
[
{
"follow_symlinks": true,
"path": "C:\\Users\\MattDMo\\Development\\DB\\my_postgres_db1"
// by default, Sublime uses double-backslashes :(
}
],
}
Ajouter un "build_systems":
identifiant après le crochet fermant de "folders"
, et mettez dans votre système de construction :
{
"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
}
]
}
et vous devriez être prêt. Maintenant que vous avez votre modèle, vous pouvez faire autant de copies du fichier que vous le souhaitez, en personnalisant le nom de la base de données et le nom du système de construction selon vos besoins. Le "name"
le champ apparaîtra dans Tools -> Build System
menu, et vous pouvez soit le sélectionner directement, soit utiliser Automatic
si vous n'avez pas d'autres systèmes de construction avec "selector": "source.postgresql"
en eux.
Cela implique un peu de travail pour chaque DB que vous avez, et vous devrez vous rappeler de changer de projet actif lors du changement de DB (je garde juste une fenêtre ouverte pour chaque projet que j'ai actif), mais à part ça, il devrait résoudre votre problème. Vous remarquerez que j'ai supprimé le "env": {"PGPASSWORD": "password"},
ligne (elle aurait dû être entre crochets, de toute façon) et a ajouté à la place le -W
option de ligne de commande pour psql.exe
pour demander le mot de passe. Il n'y a aucun moyen de chiffrer .sublime-project
fichiers, afin que quiconque puisse les lire verra le mot de passe de votre serveur. Je ne sais pas si j'utilise "shell": true
importe ou non les variables d'environnement de votre shell, je suppose que ce n'est pas le cas, mais vous devrez tester. Ce sera une chose à saisir lors de l'exécution du système de construction, mais cela rendra votre système global plus sécurisé. Bien sûr, n'hésitez pas à revenir si vous ne voulez pas/n'avez pas besoin de la sécurité supplémentaire, mais s'il s'agit d'un serveur public, je ne le ferais pas.
Bonne chance !