Page MenuHomePhabricator

Lisää/asenna Postgresql (vaihtoehtoiseksi) tietokannaksi
Closed, ResolvedPublic

Description

Tarvitaan tulevaisuudessa Postgissia, niin asenna se Postgresiin myös.

Chatgpt ohjeet Postgresin asentamiseksi Djangoon

Postgis

Konfiguraatio
https://github.com/Wikimedia-Suomi/Finna-uploader/blob/main/finnauploader/finnauploader/settings.py

Kun commitoit conffin githubiin, niin pidä Postgres kommentoituna tai ehdollistettuna siten, että Sqlite3 säilyy vakiotietokantana.

  • Esimerkkiconffi siitä miltä Postgresql-conffi näyttää **
DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db'
    }
}

Event Timeline

Zache updated the task description. (Show Details)

Muistiin että psql-yhteys vaatii hostin käyttämisen yhteydelle, mikäli autentikaatiomoodina on oletuksena "peer":
psql -U postgres -h 127.0.0.1 -W
.. jossa -h tarkoittaa localhostia

Jos autentikaatiomoodina on joku muu tuota ei välttämättä tarvitse. Riippuu postgresql:n oletuskonfigista (pg_hba.conf, voi olla peer, md5, trust, ident..).

Lisäksi jos tekee tietokannan 'djangodb' ja tunnuksen 'django' pitää muistaa taulujenluontioikeudet (GRANT ALL ON DATABASE ...) ja yhteysoikeudet (GRANT CONNECT ON DATABASE ...)

Postgresql:n konfigin muuttamisen jälkeen se tarvitsee käynnistää uudelleen (systemctl restart postgresql)

Schema pitää luoda (CREATE SCHEMA djangouser..)

käyttöjärjestelmälle on asennettava libpq-dev paketti (sudo apt-get install libpq-dev)
tätä tarivtaan psycopg2-paketin asentamiseen (pip install psycopg2)

djangon konfiguraatiossa 'HOST' pitäisi olla mihin yhteys otetaan (/var/run/postgresql, 'localhost' tai '127.0.0.1')

'NAME' pitää olla tietokannan nimi, esim. 'djangodb'

'postgis' laajennuksen luomiseen pitää olla superuser-oikeudet, jos enginessä on 'django.db.backends.postgresql' ei tarvitse postgis-laajennusta ja sen tarvitsemia oikeuksia

eli ylläolevista yhteenvetona:
DATABASES = {

'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'djangodb',
    'USER': 'django',
    'PASSWORD': 'django',
    'HOST': '127.0.0.1'
}

}

katson tuota postgisin vaatimia oikeuksia

Ipr1 changed the status of subtask T348710: Lisää pg-spgist_hamming Postgresiin from Open to In Progress.