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

maven iniciar servidor postgres

PostgreSQL no es un servidor integrado en memoria. No puede simplemente cargarse como una biblioteca y ejecutarse.

Necesitará algún código de control de arnés de prueba para:

  • initdb un directorio de datos temporal

  • Editar postgresql.conf según sea necesario agregando líneas o habilitando un include_dir y colocar archivos en él. Si solo necesita una configuración trivial, puede omitir este paso; cosas como el port se puede configurar a través de variables de entorno, y muchos otros se pueden configurar con -c banderas al comando de inicio del servidor.

  • generar un número de puerto aleatorio para usar

  • Inicie el servidor:ejecute postgres -D the_datadir una nueva instancia de servidor usando el Process de Java administración. Puede pasar valores de configuración personalizados con -c y también puede establecer variables de entorno para controlar el comportamiento.

  • Conéctese a través de JDBC y CREATE DATABASE luego ejecute su configuración de prueba

  • Ejecute sus pruebas

  • Detenga el servidor eliminando el proceso que inició.

  • Eliminar el directorio de datos

Querrá hacer la gestión del proceso en una clase con el manejo adecuado del directorio temporal, la limpieza en la salida sucia (matar el servidor Pg y eliminar el directorio de datos en caso de excepción), etc.

Me sorprendería si no puede encontrar un código de arnés de prueba enlatado para tomar prestado para esto. Me pregunto si deberíamos agregar algo a PgJDBC y empaquetarlo en el controlador. Si encuentra algo bueno o escribe algo bueno, envíeme un ping comentando esta respuesta y lo consideraré para incluirlo como una clase de utilidad en PgJDBC.

Dicho esto, es mucho más común ejecutar sus pruebas en una base de datos de prueba recién creada en una instancia de PostgreSQL existente que ya se ejecuta en su servidor. Simplemente configure su conjunto de pruebas con un nombre de usuario/contraseña/host/puerto/base de datos de PostgreSQL (o deje que se conecte a postgres base de datos y CREATE y DROP la base de datos). Después de todo, siempre será necesaria alguna configuración:instalar o compilar PostgreSQL, asegurándose de que los archivos binarios estén en la PATH , etc.

Otra opción es usar Amazon RDS:use las API de AWS RDS para lanzar una nueva instancia de PostgreSQL y usarla para sus pruebas. Esto probablemente no sea práctico a menos que sus pruebas se ejecuten durante mucho tiempo debido al tiempo de configuración y el tiempo de ejecución mínimo, pero es otra opción, al igual que el servicio similar en Heroku.