Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tietokantamigraatiot tehdään Djangon omalla migraatiotyökalulla. Niiden vastuulla on tietokannan rakenteen (taulujen, kenttien ja indeksien) päivittäminen ajan tasalle.

Migraatioiden lisäksi käytetään ns. idempotentteja setup-skriptejä. Idempotentti tarkoittaa sitä, että setup-skriptiä voi ajaa samaan asennukseen uudestaan ja uudestaan, eikä se myöhemmillä ajokerroilla riko mitään saati hajoa omaan mahdottomuuteensa, vaan varmistaa vain haluttujen resurssien olevan olemassa.

Setup-skriptin vastuut pähkinänkuoressa:

  1. luo organisaatiot, tapahtumat ja muun rakenteellisen informaation Kompassin tietokantaan
  2. luo uudet ryhmät Atlassian-tuotteiden Crowd-kertakirjautumispalveluun, jos se on konfiguroitu

Omassa kehitysympäristössäsi voit ajaa setup-skriptin tai pelkät migraatiot Docker Composen avulla näin:

...

Staging- ja tuotantoympäristöissä setup-skriptin ja migraatioiden ajoon käytetään Jenkinsistä löytyvää kompassi-ops-työtä. Jenkins käyttää puolestaan näiden ajamiseen Ansible-konfiguraationhallintatyökaluaskriptejä. Kuha pääsee Jenkinsiin, voi ajaa tietokantamigraatiot tai setup-skriptin vaikka ei ole SSH-pääsyä tai paikallista Ansible-ympäristöä.

Jenkins like it's 2010

Tietokanta

Tuotanto- ja Staging-ympäristöissä tietokannan käyttöoikeudet on eriytetty siten, että tietokannan rakenteeseen vaikuttavat operaatiot – siis käytännössä migrate- ja setup-skriptit – ajetaan tietokannan omistajakäyttäjällä (ei kuitenkaan pääkäyttäjällä) ja sovellusta itseään pyöritetään matalammin oikeuksin. Lisää tästä voit lukea kooditason dokumentaatiosta.

Molempien tietokannat sijaitsevat tätä kirjoitettaessa vielä Neulan dockeroidussa PostgreSQL:ssä ja tätä lukiessasi ehkä jo Siilolla. Tietokantoja varmuuskopioidaan jatkuvasti Piiloon. Lue lisää tietokannoista.

Ympäristö

Tietokanta missä nyt

(16.9.2017)

Tietokanta missä toivottavasti pian

Tavallinen käyttäjä

(Sovelluksen ajo)

Tietokannan omistajakäyttäjä

(Migrate- ja setup-skriptit)

Tuotanto

palvelin neula.kompassi.eu

kontti kompassi.eu-docker (PostgreSQL 9.5)

tietokanta kompassi

palvelin siilo.tracon.fi

kontittamaton PostgreSQL 10

tietokanta kompassi

kompassikompassi_ddl
Staging

palvelin neula.kompassi.eu

kontti kompassi.eu-docker (PostgreSQL 9.5)

tietokanta kompassidev

palvelin siilo.tracon.fi

kontittamaton PostgreSQL 10

tietokanta kompassi

kompassidevkompassidev_ddl