Ännu en anledning att använda PostGIS tillsammans med QGIS, tänkte jag titta lite närmare på i detta inlägg.
Jag har nyligen gjort omtag med PostGIS server (kommer i inlägg längre fram) men ett resultat är att jag överväger börja lagra QGIS projekt i PostgreSQL.
Vad är nu detta för magi?
Jo sedan QGIS 3.2 (tror jag) så går det att lagra QGIS projektfiler i PostGIS databaser. Det är väl egentligen en vanlig PostgreSQL tabell, på samma sätt som lagerstilar kan lagras i tabeller i databasen.
Detta är ett utmärkt alternativ när data också lagras i databasen. Allt på samma ställe! Detta är inte minst trevligt ur ett information management perspektiv, då man ofta vill att vi skall lagra dokument i ett dokumenthanteringssystem som SharePoint (eller motsvarande Open Source alternativ). Helst vill IMO’n inte ha några delade nätverkssökvägar alls, och skall man vara ärlig så är windows share en sårbarhet.
Om man då kan hantera geodata och projektfiler i en PostGIS databas helt och hållet så skulle detta teoretiskt vara möjligt, även för GIS användare. Alla projekt och delade GIS data hanteras i PostGIS. Dokument (och kart-pdf) hanteras i ett DMS/CMS.
Det finns anledningar att inte helt plocka bort nätverkskatalogerna, men att lagra projektfiler i databas gör att det är ett problem mindre.
Oavsett vad IMO säger så är det en fördel att kunna lagra en del projekt i databasen. Alla kopplingar till data finns ju där direkt. Så länge man kommer åt servern så kan man öppna projekten. Grundkonfigurerade projekt helt kopplade till data i databasen skulle kunna vara en lämplig typ av projekt att lagra såhär.
Nåja, hur gör man då?
För det första så måste man aktivt välja att tillåta att projekt skall kunna lagras i databasen. Det är inte svårare är att sätta ett kryss i en ruta i inställningarna för anslutningen.
När man sedan skapat sitt projekt med data från PostGIS databasen så väljer man i stället för att spara som vanligt, ”Spara Till…”.
Här kan man ännu så länge endast välja PostgreSQL, vilket öppnar en ny dialog där man pekar ut anslutning schema och vilket namn man vill ge projektet.
De som sedan ansluter till PostGIS databasen och bläddrar bland lagren kommer att hitta projektfilen som en datakälla att använda.
Om det är flera som använder projektet och man försöker spara det, så kan det hända att någon annan redan har uppdaterat projektet till en nyare version. Men QGIS kan känna av detta och varna dig att du är påväg att skriva över en nyare version än den du öppnat från början. Säkrast är då att öppna det uppdaterade projektet i en ny QGIS instans och föra över dina ändringar till det nya projektet innan du sparar.
I databashanteraren så finns inte projektfilen synlig, men tabellen där alla projekt lagras syns. På samma sätt som för tabellen ”Layer styles” (i public schemat) verkar tabellen vara ganska enkel. En stor fet ”bytea” datatyp som hela QGS-filen sparas i, helt enkelt.
Samma princip som med PostGIS kan man tillämpa även på andra databaser, exempelvis GeoPackage! Det går redan att spara stilar i GeoPackage, och ett naturligt steg framöver vore att även kunna spara QGIS projekt i GeoPackage. Då blir GeoPackage-filen bäraren av såväl data som projektfil.
Jag skulle kunna tänka mig att man gör tvärt om också. Låt QGZ-filen vara bäraren av hela projektet och inkludera ett GeoPackage i projektfilen i stället. Fördelen är att då kan man ”teoretiskt” inkludera även andra format i projektet, samt andra stödfiler som projektrapporter, bilder och multimedia.