User Tools

Site Tools


doc:appunti:linux:sa:matrix

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
doc:appunti:linux:sa:matrix [2021/01/21 13:11]
niccolo [Migrazione da SQLite a Postgres]
doc:appunti:linux:sa:matrix [2021/01/21 16:40] (current)
niccolo [Migrazione da SQLite a Postgres]
Line 309: Line 309:
 ===== Migrazione da SQLite a Postgres ===== ===== Migrazione da SQLite a Postgres =====
  
-L'installazione predefinita di **matrix-synapse** in Debian utilizza un database SQLite3 (file **/var/lib/matrix-synapse/homeserver.db**). Le **[[https://matrix.org/blog/2019/12/13/synapse-1-7-0-released|note di rilascio per la versione 1.7.0]]** suggeriscono di migrare a Postgres per motivi di prestazioni, soprattutto se si partecipa alla federazione Matrix. Esistono delle opportune **[[https://github.com/matrix-org/synapse/blob/v1.7.0/docs/postgres.md|istruzioni per utilizzare Postgres]]**.+L'installazione predefinita di **matrix-synapse** in Debian utilizza un database SQLite3 (file **/var/lib/matrix-synapse/homeserver.db**). Le **[[https://matrix.org/blog/2019/12/13/synapse-1-7-0-released|note di rilascio per la versione 1.7.0]]** suggeriscono di migrare a Postgres per motivi di prestazioni, soprattutto se si partecipa alla federazione Matrix. Esistono delle opportune **[[https://github.com/matrix-org/synapse/blob/v1.7.0/docs/postgres.md|istruzioni per utilizzare Postgres]]**. Le istruzioni qui riportate sono semplificate leggermente diverse per adeguarsi all'ambiente Debian.
  
-Verificate che siano installati i seguenti pacchetti Debian:+Verificate che siano installati i pacchetti Debian:
  
   * **postgresql** - Object-relational SQL database   * **postgresql** - Object-relational SQL database
   * **python3-psycopg2** - Python 3 module for PostgreSQL   * **python3-psycopg2** - Python 3 module for PostgreSQL
   * **libpq5** - PostgreSQL C client library   * **libpq5** - PostgreSQL C client library
 +
 +Cambiare utente in **postgres** ed eseguire nella shell **psql** i seguenti comandi SQL:
 +
 +<code sql>
 +CREATE USER synapse_user PASSWORD 'MyDbSecret';
 +CREATE DATABASE synapse
 +    ENCODING 'UTF8'
 +    LC_COLLATE='C'
 +    LC_CTYPE='C'
 +    template=template0
 +    OWNER synapse_user;
 +</code>
 +
 +Nel file di configurazione **/etc/matrix-synapse/homeserver.yaml** deve esserci il parametro **server_name**, che invece con l'installazione Debian **non c'è** (pacchetto matrix-synapse versione **1.24.0-1~bpo10+1**). Per eseguire lo script **synapse_port_db** è indispensabile aggiungerlo:
 +
 +<file>
 +server_name: "matrix.example.org"
 +</file>
 +
 +Preparare una nuova versione del file di configurazione **/etc/matrix-synapse/homeserver.pg.yaml** dove cambia solo la sezione **database**:
 +
 +<file>
 +# Database configuration
 +database:
 +  name: "psycopg2"
 +  args:
 +    user: synapse_user
 +    password: MyDbSecret
 +    database: synapse
 +    host: 127.0.0.1
 +    cp_min: 5
 +    cp_max: 10
 +</file>
 +
 +Spostarsi nella directory **/var/lib/matrix-synapse/** ed eseguire i sequenti comandi:
 +
 +<code bash>
 +#!/bin/sh -xe
 +cd /var/lib/matrix-synapse
 +systemctl stop matrix-synapse.service
 +synapse_port_db \
 +    --sqlite-database /var/lib/matrix-synapse/homeserver.db \
 +    --postgres-config /etc/matrix-synapse/homeserver.pg.yaml
 +mv /etc/matrix-synapse/homeserver.yaml /etc/matrix-synapse/homeserver.yaml.bak
 +mv /etc/matrix-synapse/homeserver.pg.yaml /etc/matrix-synapse/homeserver.yaml
 +systemctl start matrix-synapse.service
 +</code>
 +
 +La nostra ricetta semplificata **tiene fermo il servizio Matrix per tutto il tempo della migrazione**. Con database di una certa dimensione questa operazione potrebbe richiedere diversi minuti; vedere le **[[https://github.com/matrix-org/synapse/blob/v1.7.0/docs/postgres.md|istruzioni originali]]** per un metodo che esegue la migrazione in due o tre **passaggi incrementali**.
  
 ===== Web References ===== ===== Web References =====
doc/appunti/linux/sa/matrix.txt · Last modified: 2021/01/21 16:40 by niccolo