PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

maven стартира postgres сървър

PostgreSQL не е сървър за вграждане в паметта. Не може просто да се зареди като библиотека и да се стартира.

Ще ви е необходим контролен код за тестови снопове, за да:

  • initdb временна директория с данни

  • Редактирайте postgresql.conf според изискванията чрез добавяне на редове или чрез активиране на include_dir и пускане на файлове в него. Ако имате нужда само от тривиална конфигурация, може да сте в състояние да пропуснете тази стъпка; неща като port могат да бъдат зададени чрез променливи на средата, а много други могат да бъдат зададени с -c флагове към командата за стартиране на сървъра.

  • генерира произволен номер на порт за използване

  • Стартирайте сървъра - стартирайте postgres -D the_datadir нов сървърен екземпляр, използващ Process на Java управление. Можете да предавате потребителски конфигурационни стойности с -c и може също така да задава променливи на средата за контрол на поведението.

  • Свържете се през JDBC и CREATE DATABASE след това стартирайте вашата тестова настройка

  • Изпълнете вашите тестове

  • Спрете сървъра, като убиете процеса, който сте стартирали.

  • Изтрийте datadir

Ще искате да извършите управлението на процеса в клас с подходящо управление на временна директория, почистване при нечист изход (убиване на Pg сървъра и изтриване на datadir при изключение) и т.н.

Ще се изненадам, ако не можете да намерите готов тестов код, който да заемете за това. Чудя се дали трябва да добавим малко към PgJDBC и да го включим в драйвера? Ако намерите нещо добро или напишете нещо добро, моля, изпратете ми ping, като коментирате този отговор и ще го разгледам за включване като полезен клас в PgJDBC.

Въпреки това е много по-често вместо това да изпълнявате вашите тестове в новосъздадена тестова база данни в съществуващ екземпляр на PostgreSQL, който вече работи на вашия сървър. Просто конфигурирате тестовия си пакет с PostgreSQL потребителско име/парола/хост/порт/база данни (или го оставяте да се свърже с postgres база данни и CREATE и DROP базата данни). В края на краищата винаги ще се изисква някаква конфигурация:инсталиране или компилиране на PostgreSQL, като се уверите, че двоичните файлове са на PATH и т.н.

Друг вариант е да използвате Amazon RDS:Използвайте AWS RDS API, за да стартирате нов екземпляр на PostgreSQL и да го използвате за вашите тестове. Това вероятно не е практично, освен ако вашите тестове не се изпълняват дълго време поради времето за настройка и минималното време за изпълнение, но това е друга опция, както и подобна услуга в Heroku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Goroutines блокира пул от връзки

  2. Да има булев тип в Postgres за PHP

  3. PostgreSQL Висока наличност с архитектури Master-Slave и Master-Master

  4. Как да променя позицията на колона в таблица с база данни на PostgreSQL?

  5. Какъв е най-бързият начин за съкращаване на времеви печати до 5 минути в Postgres?