sql >> Database >  >> RDS >> PostgreSQL

maven start postgres-server

PostgreSQL is geen in-memory server die kan worden ingesloten. Het kan niet zomaar als een bibliotheek worden geladen en worden uitgevoerd.

U heeft een testkabelboomcontrolecode nodig om:

  • initdb een tijdelijke datadir

  • Bewerk postgresql.conf zoals vereist door regels toe te voegen, of door een include_dir . in te schakelen en bestanden erin te laten vallen. Als je alleen een triviale configuratie nodig hebt, kun je deze stap misschien overslaan; dingen zoals de port kan worden ingesteld via omgevingsvariabelen, en vele andere kunnen worden ingesteld met -c vlaggen naar de opstartopdracht van de server.

  • genereer een willekeurig poortnummer om te gebruiken

  • Start de server - voer postgres -D the_datadir uit een nieuwe serverinstantie met behulp van Java's Process beheer. U kunt aangepaste configuratiewaarden doorgeven met -c en kan ook omgevingsvariabelen instellen om het gedrag te controleren.

  • Maak verbinding via JDBC en CREATE DATABASE voer vervolgens uw testopstelling uit

  • Voer uw tests uit

  • Stop de server door het gestarte proces te beëindigen.

  • Verwijder de datadir

U wilt het procesbeheer doen in een klasse met de juiste tijdelijke directory-afhandeling, opschonen bij onrein afsluiten (de Pg-server beëindigen en de datadir verwijderen bij uitzondering), enz.

Het zal me verbazen als je geen ingeblikte testharnascode kunt vinden om hiervoor te lenen. Ik vraag me af of we wat aan PgJDBC moeten toevoegen en het in de driver moeten bundelen? Als je iets goeds vindt, of iets goeds schrijft, ping me dan alsjeblieft door op dit antwoord te reageren en ik zal het beschouwen voor opname als een hulpprogrammaklasse in PgJDBC.

Dat gezegd hebbende, is het veel gebruikelijker om uw tests in plaats daarvan uit te voeren in een nieuw gemaakte testdatabase in een bestaande PostgreSQL-instantie die al op uw server draait. U configureert gewoon uw testsuite met een PostgreSQL-gebruikersnaam/wachtwoord/host/poort/database (of laat het verbinding maken met de postgres database en CREATE en DROP de databank). Er zal immers altijd enige configuratie nodig zijn:het installeren of compileren van PostgreSQL, ervoor zorgen dat de binaire bestanden op het PATH staan , enz.

Een andere optie is om Amazon RDS te gebruiken:gebruik de AWS RDS API's om een ​​nieuwe PostgreSQL-instantie te starten en deze voor uw tests te gebruiken. Dit is waarschijnlijk niet praktisch, tenzij je tests lang duren vanwege de insteltijd en minimale looptijd, maar het is een andere optie, net als de vergelijkbare service bij Heroku.



  1. Hoe gegenereerde PDF-bestanden opslaan in de MySQL-database met Java?

  2. Hoe stel ik replicatie van MySQL naar MongoDB in?

  3. MySQL met speciaal teken in het json-pad

  4. 7 dingen die u moet weten over compartimenten op Oracle Cloud Infrastructure