...
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:
- luo organisaatiot, tapahtumat ja muun rakenteellisen informaation Kompassin tietokantaan
- 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öä.
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 | kompassi | kompassi_ddl |
Staging | palvelin neula.kompassi.eu kontti kompassi.eu-docker (PostgreSQL 9.5) tietokanta kompassidev | palvelin siilo.tracon.fi kontittamaton PostgreSQL 10 tietokanta kompassi | kompassidev | kompassidev_ddl |