PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

maven uruchamia serwer postgres

PostgreSQL nie jest serwerem osadzanym w pamięci. Nie można go po prostu załadować jako bibliotekę i uruchomić.

Potrzebny będzie kod kontrolny wiązki testowej, aby:

  • initdb tymczasowy katalog danych

  • Edytuj postgresql.conf zgodnie z wymaganiami, dołączając wiersze lub włączając include_dir i upuszczanie w nim plików. Jeśli potrzebujesz tylko trywialnej konfiguracji, możesz pominąć ten krok; rzeczy takie jak port można ustawić za pomocą zmiennych środowiskowych, a wiele innych można ustawić za pomocą -c flagi do polecenia uruchamiania serwera.

  • wygeneruj losowy numer portu do użycia

  • Uruchom serwer - uruchom postgres -D the_datadir nowa instancja serwera używająca Process Javy kierownictwo. Możesz przekazać niestandardowe wartości konfiguracji za pomocą -c i może również ustawić zmienne środowiskowe, aby kontrolować zachowanie.

  • Połącz się przez JDBC i CREATE DATABASE następnie uruchom konfigurację testową

  • Przeprowadź testy

  • Zatrzymaj serwer, zabijając uruchomiony proces.

  • Usuń katalog danych

Będziesz chciał zarządzać procesami w klasie z odpowiednią obsługą katalogu tymczasowego, czyszczeniem przy nieczystym wyjściu (zabij serwer Pg i usuń katalog danych w przypadku wyjątku) itp.

Będę zaskoczony, jeśli nie możesz znaleźć kodu uprzęży testowej w puszkach do wypożyczenia. Zastanawiam się, czy powinniśmy dodać trochę do PgJDBC i zapakować je w sterownik? Jeśli znajdziesz coś dobrego lub napiszesz coś dobrego, powiadom mnie, komentując tę ​​odpowiedź, a rozważę włączenie jej jako klasy użytkowej w PgJDBC.

To powiedziawszy, znacznie częściej zamiast tego uruchamia się testy w nowo utworzonej testowej bazie danych w istniejącej instancji PostgreSQL, która już działa na twoim serwerze. Po prostu konfigurujesz zestaw testów z nazwą użytkownika/hasłem/hasłem/hostem/portem/bazą danych PostgreSQL (lub pozwalasz mu połączyć się z postgres bazy danych i CREATE i DROP baza danych). W końcu zawsze będzie wymagana pewna konfiguracja:instalacja lub kompilacja PostgreSQL, upewnienie się, że binaria znajdują się na PATH itp.

Inną opcją jest użycie Amazon RDS:użyj interfejsów API AWS RDS, aby uruchomić nową instancję PostgreSQL i użyć jej do testów. Prawdopodobnie nie jest to praktyczne, chyba że twoje testy działają przez długi czas ze względu na czas konfiguracji i minimalny czas działania, ale jest to inna opcja, podobnie jak podobna usługa w 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. Django resetuje auto-inkrementację pola pk/id dla produkcji

  2. Używanie zmiennego okresu w interwale w Postgres

  3. Zalecane podejście do wstawiania wielu wierszy za pomocą Castle ActiveRecord i ignorowania wszelkich duplikatów

  4. Błąd Postgres bytea podczas wiązania wartości null z przygotowanymi instrukcjami

  5. Tworzenie nowych modułów za pomocą rozszerzenia PostgreSQL Create