sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo hacer un sistema de compilación para PostgreSQL

El contenido del "cmd" del sistema de compilación La matriz debe ser lo que escribiría en la línea de comando para ejecutar ese comando; los DB no son una excepción. No sé nada sobre los componentes internos de Postgres, pero si necesita especificar el nombre de la base de datos en la línea de comandos, tendrá que hacerlo en el sistema de compilación.

Sin embargo, existe una alternativa a tener potencialmente docenas de sistemas de compilación por ahí:definir el sistema de compilación en un .sublime-project expediente. Según la documentación , el .sublime-project archivo puede tener tres grupos base:"folders" , "settings" y "build_systems" . Para crear un proyecto, abra la(s) carpeta(s) que desea incluir en la barra lateral, luego haga clic en Project -> Save Project As... . Ponga su nombre y guárdelo en un lugar lógico. Luego, seleccione Project -> Edit Project , que abrirá el .sublime-project archivo con sintaxis JSON. Debería ser algo como esto:

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

Agregue un "build_systems": identificador después del corchete de cierre de "folders" , e ingrese su sistema de compilación:

{
    "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
        }
    ]
}

y usted debe estar todo listo. Ahora que tiene su plantilla, puede hacer tantas copias del archivo como desee, personalizando el nombre de la base de datos y el nombre del sistema de compilación según sea necesario. El "name" El campo aparecerá en Tools -> Build System y puede seleccionarlo directamente o usar Automatic si no tiene ningún otro sistema de compilación con "selector": "source.postgresql" en ellos.

Implica un poco de trabajo para cada base de datos que tenga, y tendrá que recordar cambiar el proyecto activo cuando cambie de base de datos (solo mantengo una ventana abierta para cada proyecto que tengo activo), pero aparte de eso, debería resolver su problema. Notarás que eliminé el "env": {"PGPASSWORD": "password"}, línea (debería haber estado entre corchetes, de todos modos) y en su lugar agregó el -W opción de línea de comandos para psql.exe para solicitar la contraseña. No hay forma de encriptar .sublime-project archivos, por lo que cualquiera que pueda leerlos verá la contraseña de su servidor. No sé si usando "shell": true importa las variables de entorno de su shell o no, sospecho que no, pero tendrá que probar. Será una cosa ingresar al ejecutar el sistema de compilación, pero hará que su sistema general sea más seguro. Por supuesto, siéntase libre de revertir si no desea/necesita la seguridad adicional, pero si se trata de un servidor público, no lo haría.

¡Buena suerte!