PostgreSQL-tietokannan käyttäminen¶
Oletusarvoisesti Gramps käyttää tiedostopohjaista SQLite-tietokantaa perhesuvun tallentamiseen. Tämä toimii erinomaisesti Gramps Webin kanssa ja on suositeltavaa useimmille käyttäjille. Kuitenkin Gramps Web API -version 0.3.0 alkaen tuetaan myös PostgreSQL-palvelinta, jossa on yksi perhesuku per tietokanta, jota tukee Gramps PostgreSQL -lisäosa. Version 1.0.0 myötä myös SharedPostgreSQL-lisäosa on tuettu, mikä mahdollistaa useiden perhesukujen isännöimisen yhdessä tietokannassa, mikä on erityisen hyödyllistä käytettäessä yhdessä Gramps Web API:n monisuku-tukea.
PostgreSQL-palvelimen asetukset¶
Jos haluat perustaa uuden tietokannan käytettäväksi PostgreSQLAddonin kanssa, voit seurata ohjeita Gramps Wikissä palvelimen asettamiseksi.
Vaihtoehtoisesti voit myös käyttää Docker Composea PostgreSQL-palvelimen ajamiseen säilössä samalla docker-isännällä kuin Gramps Web.
Dockerisoidun PostgreSQL:n käyttäminen Grampsin kanssa on vain monimutkaista siitä syystä, että oletusarvoisissa PostgreSQL-kuvissa ei ole asennettu mitään paikallisia asetuksia, joita Gramps kuitenkin tarvitsee objektien lokalisoituun lajitteluun. Helpoin vaihtoehto on käyttää gramps-postgres -kuvaa, joka on julkaistu tässä varastossa. Käyttääksesi sitä, lisää seuraava osio docker-compose.yml -tiedostoon:
postgres_gramps:
image: ghcr.io/davidmstraub/gramps-postgres:latest
restart: unless-stopped
environment:
POSTGRES_PASSWORD: postgres_password_admin
POSTGRES_PASSWORD_GRAMPS: postgres_password_gramps
POSTGRES_PASSWORD_GRAMPS_USER: postgres_password_gramps_user
volumes:
- postgres_data:/var/lib/postgresql/data
postgres_data: avaimena volumes:-osion alle tässä YAML-tiedostossa. Tämä kuva sisältää erillisen tietokannan Grampsin sukututkimustiedoille ja Grampsin käyttäjädatabankille; kummallakin voi olla erilliset salasanat.
Gramps-perhesuvun tuominen¶
Jos olet itse asentanut PostgreSQL-palvelimen, voit seurata ohjeita Gramps Wikissä tuodaksesi perhesuvun tietokantaan.
Vaihtoehtoisesti, jos olet seurannut yllä olevia Docker Compose -ohjeita, voit käyttää seuraavaa komentoa tuodaksesi Gramps XML -tiedoston, joka sijaitsee docker-isännälläsi:
docker compose run --entrypoint "" grampsweb \
gramps -C postgres \
-i /root/.gramps/grampsdb/my_tree.gramps \
--config=database.path:/root/.gramps/grampsdb \
--config=database.backend:postgresql \
--config=database.host:postgres_gramps \
--config=database.port:5432 \
--username=gramps --password=postgres_password_gramps
Web API:n konfigurointi tietokannan käyttöön¶
Konfiguroidaksesi Web API:n PostgreSQL-tietokannan käyttöön, lisää seuraava environment:-avaimen alle grampsweb-palvelussa docker-compose.yml-tiedostossa:
# PostgreSQL-lisäosa olettaa, että puun nimi on
# sama kuin tietokannan nimi ja täällä käytetään oletus
# tietokannan nimeä PostgreSQL-kuvasta
TREE: postgres
# Tunnistetietojen on oltava samat kuin
# PostgreSQL-säilössä käytetyt
POSTGRES_USER: gramps
POSTGRES_PASSWORD: postgres_password_gramps
Jaetun PostgreSQL-tietokannan käyttäminen monisuku-asennuksessa¶
Kun käytetään monisukuasetusta, SharedPostgreSQL-lisäosa on kätevä vaihtoehto isännöidä kaikkia puita, myös API:n kautta uusia, yhdessä PostgreSQL-tietokannassa ilman, että yksityisyydestä tai turvallisuudesta tingitään.
Tämän saavuttamiseksi aseta säilö, joka perustuu gramps-postgres -kuvaan yllä kuvatulla tavalla, ja aseta yksinkertaisesti konfiguraatio-ominaisuus NEW_DB_BACKEND arvoksi sharedpostgresql, esimerkiksi GRAMPSWEB_NEW_DB_BACKEND ympäristömuuttujan kautta.
PostgreSQL-tietokannan käyttäminen käyttäjädatabankille¶
Riippumatta siitä, mikä tietokannan tausta käytetään sukututkimustiedoille, käyttäjädatabankki voidaan isännöidä PostgreSQL-tietokannassa antamalla sopiva tietokannan URL. Yllä mainittu gramps-postgres docker-kuva sisältää erillisen tietokannan grampswebuser, jota voidaan käyttää tähän tarkoitukseen. Tällöin sopiva arvo USER_DB_URI -konfiguraatio-ominaisuudelle olisi
postgresql://grampswebuser:postgres_password_gramps_user@postgres_gramps:5432/grampswebuser
PostgreSQL-tietokannan käyttäminen hakemistoindeksille¶
Gramps Web API -version 2.4.0 alkaen hakemistoindeksi isännöidään joko SQLite-tietokannassa (oletusarvo) tai PostgreSQL-tietokannassa. Myös tätä tarkoitusta varten voidaan käyttää gramps-postgres -kuvaa. Hakemistoindeksille voimme käyttää kuvasta saatavaa gramps-tietokantaa riippumatta siitä, isännöimmekö sukututkimustietojamme PostgreSQL:ssä vai ei (hakemistoindeksi ja sukututkimustiedot voivat olla samassa tietokannassa). Tämä voidaan saavuttaa yllä olevassa esimerkissä asettamalla SEARCH_INDEX_DB_URI -konfiguraatio-ominaisuus arvoon
postgresql://gramps:postgres_password_gramps@postgres_gramps:5432/gramps
Ongelmat¶
Ongelmien ilmetessä seuraa Gramps Webin ja PostgreSQL-palvelimen lokitulosteita. Dockerin tapauksessa tämä saavutetaan komennolla
docker compose logs grampsweb
docker compose logs postgres_grampsweb
Jos epäilet, että Gramps Webissä (tai dokumentaatiossa) on ongelma, ilmoita siitä Githubissa.