# Gramps-Web Synology Schema Upgrade?

**URL:** <https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720>\
**Category:** Gramps Web\
**Created:** [October 28, 2025, 6:57pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720 "2025-10-28T18:57:28Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Suncity](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/suncity/32/7798_2.png) [@Suncity](https://gramps.discourse.group/u/Suncity)\
**Post date:** [October 28, 2025, 6:57pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/1 "2025-10-28T18:57:28Z")

</div>

Hello, I’m desperate. I’ve installed the latest version on my Synology’s Docker. Everything’s running smoothly. Now, when I try to create a person, I get a message saying the schema needs to be upgraded. The process failed. I found instructions for this. The data needs to be backed up. After the import, a message appears stating that the database is incompatible; an update can be performed here. This message doesn’t appear in my installation. Was I wrong? It’s a fresh installation. Why isn’t the schema version compatible? What should I do? Thank you for your help.

---

<div class="post-metadata">

**Author:** ![DavidMStraub](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/davidmstraub/32/7_2.png) [@DavidMStraub](https://gramps.discourse.group/u/DavidMStraub)\
**Post date:** [October 28, 2025, 10:09pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/2 "2025-10-28T22:09:09Z")

</div>

Hi! It sounds like something is corrupted in your installation. But we will need more details to help you. Can you share logs? Version info? Compose file?

---

<div class="post-metadata">

**Author:** ![Suncity](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/suncity/32/7798_2.png) [@Suncity](https://gramps.discourse.group/u/Suncity)\
**Post date:** [October 28, 2025, 11:10pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/3 "2025-10-28T23:10:31Z")

</div>

**Ich habe eine DS218+ mit 12 GB RAM. Ich habe die Anleitung von [https://mariushosting.com/?s=gramps](https://mariushosting.com/?s=gramps) genutzt. Es wurden die Ordner angelegt. Im Portainer habe ich folgendes eingefügt:**

Dienstleistungen:

Grampsweb:

Bild: [Package grampsweb · GitHub](http://ghcr.io/gramps-project/grampsweb:latest)

Containername: Gramps-Web

Gesundheitscheck:

Test: Timeout 10s bash -c ‘:\> /dev/tcp/127.0.0.1/5000’ || Ausgang 1

Intervall: 10 s

Timeout: 5 s

Wiederholungen: 3

Startzeitraum: 90 s

Sicherheitsoption:

- keine neuen Berechtigungen: wahr

Häfen:

```python
  - 5449:5000

```

Umgebung:

GRAMPSWEB\_TREE: Mariushosting #Diese Umgebungsvariable erstellt einen Baum, falls nicht vorhanden.

Bände:

- /volume1/docker/grampsweb/dbuser:/app/users:rw

- /volume1/docker/grampsweb/indexdir:/app/indexdir:rw

- /volume1/docker/grampsweb/thumbnail:/app/thumbnail\_cache:rw

- /volume1/docker/grampsweb/cache:/app/cache:rw

- /volume1/docker/grampsweb/secret:/app/secret:rw

- /volume1/docker/grampsweb/database:/root/.gramps/grampsdb:rw

- /volume1/docker/grampsweb/media:/app/media:rw

- /volume1/docker/grampsweb/tmp:/tmp:rw

Neustart: bei Fehler:5

Der Container wird erstellt. Die Daten werden in die Ordner geschrieben. Die Website lässt sich mit dem Port 5449 aufrufen. Ich lege den Administrator an und trage die Daten des Mailserver ein. Nach dem Login sind alle Seiten aufrufbar. Soweit kein Problem.

Wenn ich dann eine Person anlege, einen Ort eingebe … erhalte ich unten links die Fehlermeldung: Fehler: Die Gramps Datenbank benötigt ein Schema Update.

Die Datenbank lässt sich nicht schreiben.

Dinge die ich versucht hatte:

Mehrmalige Neuinstallation mit der Version neusten Version sowie alten Versionen.

Bei den latest und latest-devel Versionen erhalte ich den Fehler Schema Upgrade.

Die 25.4.1 funktioniert. Die 25.9.0 hat den Fehler Datenbank geschlossen.

Zu guter letzt habe ich es auf einer anderen DSM im Docker getestet. Auch hier die gleichen Fehler.

. Eigentlich sollten doch bei einer neuen Installation die Daten zusammen passen und es kein Upgrade erforderlich machen? . Sry das ich in deutsch schreibe

Gramps 6.0.5  
Gramps Web API 3.4.0  
Gramps Web Frontend 25.10.1  
Gramps QL 0.4.0  
Sifts 1.0.0  
locale: en  
multi-tree: false  
task queue: false  
OCR: true  
chat: false

: Protokoll: Portainer

( **Haupt-**.py:8): Gtk-KRITISCH \*\*: 20:36:07.005: gtk\_icon\_theme\_get\_for\_screen: Assertion „GDK\_IS\_SCREEN (Bildschirm)“ fehlgeschlagen  
INFO  
INFO  
INFO  
[2025-10-28 20:37:05 +0000] [101] [INFO] Starting gunicorn 23.0.0  
[2025-10-28 20:37:05 +0000] [101] [INFO] Listening at: [http://0.0.0.0:5000](http://0.0.0.0:5000) (101)  
[2025-10-28 20:37:05 +0000] [101] [INFO] Using worker: sync  
[2025-10-28 20:37:05 +0000] [111] [INFO] Booting worker with pid: 111  
[2025-10-28 20:37:05 +0000] [112] [INFO] Booting worker with pid: 112  
[2025-10-28 20:37:05 +0000] [113] [INFO] Booting worker with pid: 113  
[2025-10-28 20:37:05 +0000] [114] [INFO] Booting worker with pid: 114  
[2025-10-28 20:37:05 +0000] [115] [INFO] Booting worker with pid: 115  
[2025-10-28 20:37:05 +0000] [116] [INFO] Booting worker with pid: 116  
[2025-10-28 20:37:05 +0000] [117] [INFO] Booting worker with pid: 117  
[2025-10-28 20:37:05 +0000] [118] [INFO] Booting worker with pid: 118  
(gunicorn:113): Gtk-KRITISCH \*\*: 20:40:40.559: gtk\_icon\_theme\_get\_for\_screen: Assertion „GDK\_IS\_SCREEN (Bildschirm)“ fehlgeschlagen  
(gunicorn:115): Gtk-KRITISCH \*\*: 20:40:40.595: gtk\_icon\_theme\_get\_for\_screen: Behauptung „GDK\_IS\_SCREEN (Bildschirm)“ fehlgeschlagen  
(gunicorn:116): Gtk-KRITISCH \*\*: 20:40:40.853: gtk\_icon\_theme\_get\_for\_screen: Assertion „GDK\_IS\_SCREEN (Bildschirm)“ fehlgeschlagen  
(gunicorn:114): Gtk-KRITISCH \*\*: 20:40:40.860: gtk\_icon\_theme\_get\_for\_screen: Assertion „GDK\_IS\_SCREEN (Bildschirm)“ Fehlgeschlagen  
(gunicorn:112): Gtk-KRITISCH \*\*: 20:40:40.880: gtk\_icon\_theme\_get\_for\_screen: Behauptung „GDK\_IS\_SCREEN (Bildschirm)“ fehlgeschlagen  
(gunicorn:111): Gtk-KRITISCH \*\*: 20:40:40.979: gtk\_icon\_theme\_get\_for\_screen: Assertion „GDK\_IS\_SCREEN (Bildschirm)“ fehlgeschlagen  
(gunicorn:118): Gtk-KRITISCH \*\*: 20:40:41.194: gtk\_icon\_theme\_get\_for\_screen: Assertion „GDK\_IS\_SCREEN (Bildschirm)“ fehlgeschlagen  
(gunicorn:117): Gtk-CRITICAL \*\*: 20:40:41.241: gtk\_icon\_theme\_get\_for\_screen: Behauptung „GDK\_IS\_SCREEN (Bildschirm)“ fehlgeschlagen  
/usr/local/lib/python3.11/dist-packages/flask\_limiter/\_extension.py:364: UserWarning: Verwendung des In-Memory-Speichers zur Verfolgung von Ratenbegrenzungen, da kein Speicher explizit angegeben wurde. Dies wird für den produktiven Einsatz nicht empfohlen. Siehe: [https://flask-limiter.readthedocs.io#configuring-a-storage-backend](https://flask-limiter.readthedocs.io#configuring-a-storage-backend) für Dokumentation zur Konfiguration des Speicher-Backends.  
warnings.warn(  
/usr/local/lib/python3.11/dist-packages/flask\_limiter/\_extension.py:364: UserWarning: Verwendung des In-Memory-Speichers zur Verfolgung von Ratenbegrenzungen, da kein Speicher explizit angegeben wurde. Dies wird für den produktiven Einsatz nicht empfohlen. Siehe: [https://flask-limiter.readthedocs.io#configuring-a-storage-backend](https://flask-limiter.readthedocs.io#configuring-a-storage-backend) Dokumentation zur Konfiguration des Speicher-Backends.  
warnings.warn(  
/usr/local/lib/python3.11/dist-packages/flask\_limiter/\_extension.py:364: UserWarning: Verwendung des In-Memory-Speichers zur Verfolgung von Ratenbegrenzungen, da kein Speicher explizit angegeben wurde. Dies wird für den produktiven Einsatz nicht empfohlen. Siehe: [https://flask-limiter.readthedocs.io#configuring-a-storage-backend](https://flask-limiter.readthedocs.io#configuring-a-storage-backend) für Dokumentation zur Konfiguration des Speicher-Backends.  
warnings.warn(  
/usr/local/lib/python3.11/dist-packages/flask\_limiter/\_extension.py:364: UserWarning: Verwendung des In-Memory-Speichers zur Verfolgung von Ratenbegrenzungen als Es wurde kein Speicher explizit angegeben. Dies wird für den produktiven Einsatz nicht empfohlen. Siehe: [https://flask-limiter.readthedocs.io#configuring-a-storage-backend](https://flask-limiter.readthedocs.io#configuring-a-storage-backend) Dokumentation zur Konfiguration des Speicher-Backends.  
warnings.warn(  
/usr/local/lib/python3.11/dist-packages/flask\_limiter/\_extension.py:364: UserWarning: Verwendung des In-Memory-Speichers zur Verfolgung von Ratenbegrenzungen, da kein Speicher explizit angegeben wurde. Dies wird für den produktiven Einsatz nicht empfohlen. Siehe: [https://flask-limiter.readthedocs.io#configuring-a-storage-backend](https://flask-limiter.readthedocs.io#configuring-a-storage-backend) Dokumentation zur Konfiguration des Speichers. Backend.  
warnings.warn(  
/usr/local/lib/python3.11/dist-packages/flask\_limiter/\_extension.py:364: UserWarning: Verwendung des In-Memory-Speichers zur Verfolgung von Ratenbegrenzungen, da kein Speicher explizit angegeben wurde. Dies wird für den produktiven Einsatz nicht empfohlen. Siehe: [https://flask-limiter.readthedocs.io#configuring-a-storage-backend](https://flask-limiter.readthedocs.io#configuring-a-storage-backend) für Dokumentation zur Konfiguration des Speicher-Backends.  
warnings.warn(  
/usr/local/lib/python3.11/dist-packages/flask\_limiter/\_extension.py:364: UserWarning: Verwendung des In-Memory-Speichers für Verfolgung von Ratenbegrenzungen, da kein Speicher explizit angegeben wurde. Dies wird für den Produktionseinsatz nicht empfohlen. Siehe: [https://flask-limiter.readthedocs.io#configuring-a-storage-backend](https://flask-limiter.readthedocs.io#configuring-a-storage-backend) Dokumentation zur Konfiguration des Speicher-Backends.  
warnings.warn(  
/usr/local/lib/python3.11/dist-packages/flask\_limiter/\_extension.py:364: UserWarning: Verwendung des In-Memory-Speichers zur Verfolgung von Ratenbegrenzungen, da kein Speicher explizit angegeben wurde. Dies wird für den Produktionseinsatz nicht empfohlen. Siehe: [https://flask-limiter.readthedocs.io#configuring-a-storage-backend](https://flask-limiter.readthedocs.io#configuring-a-storage-backend) Dokumentation zur Konfiguration des Speichers. Backend.  
warnings.warn(

* * *

* * *

* * *

{  
“AppArmorProfile”: “docker-default”,  
“Args”:  
“/bin/sh”,  
“-c”,  
“gunicorn -w ${GUNICORN\_NUM\_WORKERS:-8} -b 0.0.0.0:5000 gramps\_webapi.wsgi:app --timeout ${GUNICORN\_TIMEOUT:-120} --limit-request-line 8190”  
],  
“Config”: {  
“AttachStderr”: true,  
“AttachStdin”: false,  
“AttachStdout”: true,  
“Cmd”:  
“/bin/sh”,  
“-c”,  
“gunicorn -w ${GUNICORN\_NUM\_WORKERS:-8} -b 0.0.0.0:5000 gramps\_webapi.wsgi:app --timeout ${GUNICORN\_TIMEOUT:-120} --limit-request-line 8190”  
],  
“Domainname”: “”,  
“Entrypoint”:  
“/docker-entrypoint.sh”  
],  
“Env”:  
“GRAMPSWEB\_TREE=Stammbaum”,  
“PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”,  
“DEBIAN\_FRONTEND=noninteractive”,  
“GRAMPS\_VERSION=60”,  
“PYTHONPATH=:/usr/lib/python3/dist-packages”,  
“LANGUAGE=en\_US.utf8”,  
“LANG=en\_US.utf8”,  
“LC\_ALL=en\_US.utf8”,  
“GRAMPS\_API\_CONFIG=/app/config/config.cfg”,  
“OMP\_NUM\_THREADS=1”,  
“GRAMPSWEB\_USER\_DB\_URI=sqlite:////app/users/users.sqlite”,  
“GRAMPSWEB\_MEDIA\_BASE\_DIR=/app/media”,  
“GRAMPSWEB\_SEARCH\_INDEX\_DB\_URI=sqlite:////app/indexdir/search\_index.db”,  
“GRAMPSWEB\_STATIC\_PATH=/app/static”,  
“GRAMPSWEB\_THUMBNAIL\_CACHE\_CONFIG\_\_CACHE\_DIR=/app/thumbnail\_cache”,  
“GRAMPSWEB\_REQUEST\_CACHE\_CONFIG\_\_CACHE\_DIR=/app/cache/request\_cache”,  
“GRAMPSWEB\_PERSISTENT\_CACHE\_CONFIG\_\_CACHE\_DIR=/app/cache/persistent\_cache”,  
“GRAMPSWEB\_REPORT\_DIR=/app/cache/reports”,  
“GRAMPSWEB\_EXPORT\_DIR=/app/cache/export”,  
“GRAMPSHOME=/root”,  
“GRAMPS\_DATABASE\_PATH=/root/.gramps/grampsdb”  
],  
“ExposedPorts”: {  
“5000/tcp”: {}  
},  
“Healthcheck”: {  
“Interval”: 10000000000,  
“Retries”: 3,  
“StartPeriod”: 90000000000,  
“Test”: [  
“CMD-SHELL”,  
“timeout 10s bash -c ‘:\> /dev/tcp/127.0.0.1/5000’ || exit 1”  
],  
“Timeout”: 5000000000  
},  
“Hostname”: “c9d804d33c76”,  
“Image”: “[ghcr.io/gramps-project/grampsweb:latest-devel”](http://ghcr.io/gramps-project/grampsweb:latest-devel%E2%80%9D),  
“Labels”: {  
“com.docker.compose.config-hash”: “4031a55cefa2be8d92fa951938be89dd98405a2d64b46273eeddf40aae6525e9”,  
“com.docker.compose.container-number”: “1”,  
“com.docker.compose.depends\_on”: “”,  
“com.docker.compose.image”: “sha256:3e63c792b737904020184ae1fac18e42f6410b9efff135319ea5fc1ced23f004”,  
“com.docker.compose.oneoff”: “False”,  
“com.docker.compose.project”: “stammbaum”,  
“com.docker.compose.project.config\_files”: “/data/compose/77/docker-compose.yml”,  
“com.docker.compose.project.working\_dir”: “/data/compose/77”,  
“com.docker.compose.service”: “grampsweb”,  
“com.docker.compose.version”: “”,  
“org.opencontainers.image.source”: “[https://github.com/gramps-project/gramps-web”](https://github.com/gramps-project/gramps-web%E2%80%9D)  
},  
„OnBuild“: null,  
„OpenStdin“: false,  
„StdinOnce“: false,  
„Tty“: false,  
„Benutzer“: „“,  
„Volumes“: null,  
„WorkingDir“: „/app“  
},  
„Erstellt“: „2025-10-28T20:34:08.652813351Z“,  
„Treiber“: „btrfs“,  
„ExecIDs“:  
„71006f60909a2e77be5057d62f24070fdb72fe1905bfbd647fd1cf38066101ed“,  
„a0d285f6b09a956aa161753c4103dacc575ab9d9216d1d3b59b91cd92bde9a58“  
],  
„GraphDriver“: {  
„Daten“: null,  
„Name“: „btrfs“  
},  
„HostConfig“: {  
„AutoRemove“: falsch,  
„Bindungen“:  
„/volume1/docker/grampsweb/database:/root/.gramps/grampsdb:rw“,  
„/volume1/docker/grampsweb/media:/app/media:rw“,  
„/volume1/docker/grampsweb/tmp:/tmp:rw“,  
„/volume1/docker/grampsweb/dbuser:/app/users:rw“,  
“/volume1/docker/grampsweb/indexdir:/app/indexdir:rw”,  
„/volume1/docker/grampsweb/thumbnail:/app/thumbnail\_cache:rw“,  
„/volume1/docker/grampsweb/cache:/app/cache:rw“,  
„/volume1/docker/grampsweb/secret:/app/secret:rw“  
],  
„BlkioDeviceReadBps“: null,  
„BlkioDeviceReadIOps“: null,  
„BlkioDeviceWriteBps“: null,  
„BlkioDeviceWriteIOps“: null,  
„BlkioWeight“: 0,  
„BlkioWeightDevice“: null,  
„CapAdd“: null,  
„CapDrop“: null,  
„Cgroup“: „“,  
„CgroupParent“: „“,  
„CgroupnsMode“: „Host“,  
„Konsolengröße“:  
0,  
0  
],  
„Container-ID-Datei“: „“,  
„CpuCount“: 0,  
„CpuPercent“: 0,  
„CpuPeriod“: 0,  
„CpuQuota“: 0,  
„CpuRealtimePeriod“: 0,  
„CpuRealtimeRuntime“: 0,  
„CpuShares“: 0,  
„CpusetCpus“: „“,  
„CpusetMems“: „“,  
„Gerätegruppenregeln“: null,  
„Geräteanfragen“: null,  
„Geräte“: null,  
„DNS“: null,  
„DNS-Optionen“: null,  
„DNS-Suche“: null,  
„ExtraHosts“: ,  
„Gruppenzusatz“: null,  
„IO-MaximaleBandbreite“: 0,  
„IO-MaximaleIOps“: 0,  
„IpcMode“: „privat“,  
„Isolation“: „“,  
„Links“: null,  
„LogConfig“: {  
„Config“: {},  
„Typ“: „db“  
},  
„MaskiertePfade“:  
„/proc/asound“,  
„/proc/acpi“,  
„/proc/kcore“,  
„/proc/keys“,  
„/proc/latency\_stats“,  
„/proc/timer\_list“,  
„/proc/timer\_stats“,  
„/proc/sched\_debug“,  
„/proc/scsi“,  
„/sys/firmware“  
],  
„Speicher“: 0,  
„Speicherreservierung“: 0,  
„Speicherauslagerung“: 0,  
„Speicherauslagerung“: null,  
„NanoCpus“: 0,  
„Netzwerkmodus“: „stammbaum\_default“,  
„OomKillDisable“: false,  
„OomScoreAdj“: 0,  
„PidMode“: „“,  
„PidsLimit“: null,  
„PortBindings“: {  
„5000/tcp“:  
{  
„HostIp“: „“,  
„HostPort“: „5449“  
}  
]  
},  
„Privilegiert“: falsch,  
„AllePorts veröffentlichen“: falsch,  
„Nur-Lese-Pfade“:  
„/proc/bus“,  
„/proc/fs“,  
„/proc/irq“,  
„/proc/sys“,  
„/proc/sysrq-trigger“  
],  
„Nur-Lese-Rootfs“: falsch,  
„Neustartrichtlinie“: {  
„Maximale Anzahl der Wiederholungen“: 5,  
„Name“: „bei Fehler“  
},  
„Laufzeit“: „runc“,  
„Sicherheitsoption“:  
„keine neuen Berechtigungen:true“  
],  
„ShmSize“: 67108864,  
„UTSMode“: „“,  
„Ulimits“: null,  
„UsernsMode“: „“,  
„VolumeDriver“: „“,  
„VolumesFrom“: null  
},  
„HostnamePath“: „/volume1/@docker/containers/c9d804d33c76ee6bb70d35493e1e85cf471539ae19fe8c08602de2d32b2ec7ec/hostname“,  
„HostsPfad“: „/volume1/@docker/containers/c9d804d33c76ee6bb70d35493e1e85cf471539ae19fe8c08602de2d32b2ec7ec/hosts“,  
„ID“: „c9d804d33c76ee6bb70d35493e1e85cf471539ae19fe8c08602de2d32b2ec7ec“,  
„Bild“: „sha256:3e63c792b737904020184ae1fac18e42f6410b9efff135319ea5fc1ced23f004“,  
„Logpfad“: „/volume1/@docker/containers/c9d804d33c76ee6bb70d35493e1e85cf471539ae19fe8c08602de2d32b2ec7ec/log.db“,  
„MountLabel“: „“,  
„Mounts“:  
{  
„Ziel“: „/app/indexdir“,  
„Modus“: „rw“,  
„Verbreitung“: „rprivate“,  
„RW“: true,  
„Quelle“: „/volume1/docker/grampsweb/indexdir“,  
„Typ“: „bind“  
},  
{  
„Ziel“: „/app/thumbnail\_cache“,  
„Modus“: „rw“,  
„Verbreitung“: „rprivate“,  
„RW“: true,  
„Quelle“: „/volume1/docker/grampsweb/thumbnail“,  
„Typ“: „bind“  
},  
{  
„Ziel“: „/app/cache“,  
„Modus“: „rw“,  
„Verbreitung“: „rprivate“,  
„RW“: true,  
„Quelle“: „/volume1/docker/grampsweb/cache“,  
„Typ“: „bind“  
},  
{  
„Ziel“: „/app/secret“,  
„Modus“: „rw“,  
„Propagation“: „rprivate“,  
„RW“: true,  
„Quelle“: „/volume1/docker/grampsweb/secret“,  
„Typ“: „bind“  
},  
{  
„Ziel“: „/root/.gramps/grampsdb“,  
„Modus“: „rw“,  
„Verbreitung“: „rprivate“,  
„RW“: true,  
„Quelle“: „/volume1/docker/grampsweb/database“,  
„Typ“: „bind“  
},  
{  
„Ziel“: „/app/media“,  
„Modus“: „rw“,  
„Verbreitung“: „rprivate“,  
„RW“: true,  
„Quelle“: „/volume1/docker/grampsweb/media“,  
„Typ“: „bind“  
},  
{  
„Ziel“: „/tmp“,  
„Modus“: „rw“,  
„Verbreitung“: „rprivate“,  
„RW“: true,  
„Quelle“: „/volume1/docker/grampsweb/tmp“,  
„Typ“: „bind“  
},  
{  
„Ziel“: „/app/users“,  
„Modus“: „rw“,  
„Verbreitung“: „rprivate“,  
„RW“: true,  
„Quelle“: „/volume1/docker/grampsweb/dbuser“,  
„Typ“: „Binden“  
}  
],  
„Name“: „/grampsweb“,  
„Netzwerkeinstellungen“: {  
„Bridge“: „“,  
„Endpunkt-ID“: „“,  
„Gateway“: „“,  
„Globale IPv6-Adresse“: „“,  
„Globale IPv6-Präfixlänge“: 0,  
„Haarnadelmodus“: false,  
„IP-Adresse“: „“,  
„IPPrefixlänge“: 0,  
„IPv6-Gateway“: „“,  
„LinkLocalIPv6Address“: „“,  
„LinkLocalIPv6PrefixLen“: 0,  
„MacAddress“: „“,  
„Networks“: {  
„stammbaum\_default“: {  
„Aliases“:  
„grampsweb“,  
„grampsweb“,  
„c9d804d33c76“  
],  
„DriverOpts“: null,  
„EndpointID“: „f89124f3cb6c9a93cc074f3d4c158d0fbf94656d2e4acc7e2f4bb38e2bd74e64“,  
„Gateway“: „172.28.0.1“,  
„GlobalIPv6Address“: „“,  
„GlobalIPv6PrefixLen“: 0,  
„IPAMConfig“: null,  
„IPAdresse“: „172.28.0.2“,  
„IPPrefixLen“: 16,  
„IPv6Gateway“: „“,  
„Links“: null,  
„Mac-Adresse“: „02:42:ac:1c:00:02“,  
„Netzwerk-ID“: „a6f6b52cb8dc8f091bf5795154aecaee10efa3b3cecaf51e8a5a827742ccfdc3“  
}  
},  
„Ports“: {  
„5000/tcp“:  
{  
„Host-IP“: „0.0.0.0“,  
„HostPort“: „5449“  
},  
{  
„HostIP“: „::“,  
„HostPort“: „5449“  
}  
]  
},  
„Sandbox-ID“: „94b9bebf26ff5d020bd46a47300833fbb8be20235444e43df45e4e526cfad782“,  
„Sandbox-Schlüssel“: „/var/run/docker/netns/94b9bebf26ff“,  
„Sekundäre IP-Adressen“: null,  
„Sekundäre IPv6-Adressen“: null  
},  
„Pfad“: „/docker-entrypoint.sh“,  
„Plattform“: „linux“,  
„Potainer“: {  
„Ressourcensteuerung“: {  
„ID“: 49,  
„Ressourcen-ID“: „2\_stammbaum“,  
„Subressourcen-IDs“: ,  
„Typ“: 6,  
„Benutzerzugriffe“: ,  
„Teamzugriffe“: ,  
„Öffentlich“: false,  
„Nur Administratoren“: wahr,  
„System“: falsch  
}  
},  
„Prozessbezeichnung“: „“,  
„ResolvConfPath“: „/volume1/@docker/containers/c9d804d33c76ee6bb70d35493e1e85cf471539ae19fe8c08602de2d32b2ec7ec/resolv.conf“,  
„Anzahl Neustarts“: 0,  
„Status“: {  
„Tot“: falsch,  
„Fehler“: „“,  
„ExitCode“: 0,  
„Fertig am“: „0001-01-01T00:00:00Z“,  
„Gesundheit“: {  
„Fehlerserie“: 0,  
„Protokoll“:  
{  
„Ende“: „2025-10-29T00:14:44.029319375+01:00“,  
„ExitCode“: 0,  
„Ausgabe“: „“,  
„Start“: „2025-10-29T00:14:43.980971759+01:00“  
},  
{  
„Ende“: „2025-10-29T00:14:54.301044695+01:00“,  
„ExitCode“: 0,  
„Ausgabe“: „“,  
„Start“: „2025-10-29T00:14:54.248245553+01:00“  
},  
{  
„Ende“: „2025-10-29T00:15:04.500367394+01:00“,  
„ExitCode“: 0,  
„Ausgabe“: „“,  
„Start“: „2025-10-29T00:15:04.435693338+01:00“  
},  
{  
„Ende“: „2025-10-29T00:15:15.443969285+01:00“,  
„ExitCode“: 0,  
„Ausgabe“: „“,  
„Start“: „2025-10-29T00:15:15.383737971+01:00“  
},  
{  
„Ende“: „2025-10-29T00:15:25.682538757+01:00“,  
„ExitCode“: 0,  
„Ausgabe“: „“,  
„Start“: „2025-10-29T00:15:25.632169161+01:00“  
}  
],  
„Status“: „In Ordnung“  
},  
„OOMKilled“: falsch,  
„Pausiert“: falsch,  
„Pid“: 25004,  
„Neustart“: falsch,  
„Läuft“: wahr,  
„Gestartet um“: „28.10.2025, 20:34:25.541467315Z“,  
„Status“: „Läuft“  
}  
}

---

<div class="post-metadata">

**Author:** ![DavidMStraub](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/davidmstraub/32/7_2.png) [@DavidMStraub](https://gramps.discourse.group/u/DavidMStraub)\
**Post date:** [October 29, 2025, 6:34am UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/4 "2025-10-29T06:34:02Z")

</div>

Danke, gut wäre noch ein Log während der Fehler auftritt (z.B. Hinzufügen einer Person)

---

<div class="post-metadata">

**Author:** ![Suncity](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/suncity/32/7798_2.png) [@Suncity](https://gramps.discourse.group/u/Suncity)\
**Post date:** [October 29, 2025, 9:55am UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/5 "2025-10-29T09:55:27Z")

</div>

Im Docker-Logfile steht nichts. Die Fehlermeldung kommt nur auf der Website links unten beim Versuch etwas hinzuzufügen. Und unter Verwaltung/Prüfen und Reparieren: 500 Internal Server Error. Die Gramps-Datenbank benötigt ein Schema-Upgrade. Komischerweise kann ich eine Datenbanksicherung von der Mac Desktopversion importieren. Dann schreibt er in die Datenbank. Nur das Zufügen von Personen, Orten etc. schlägt fehl.

---

<div class="post-metadata">

**Author:** ![Suncity](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/suncity/32/7798_2.png) [@Suncity](https://gramps.discourse.group/u/Suncity)\
**Post date:** [October 29, 2025, 4:59pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/6 "2025-10-29T16:59:06Z")

</div>

Die gefühlte zwanzigste Docker install. ☹ Die Datenbank wird immer gesperrt. So wird es nicht funktionieren.

sqlite3.OperationalError: Datenbank ist gesperrt

---

<div class="post-metadata">

**Author:** ![DavidMStraub](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/davidmstraub/32/7_2.png) [@DavidMStraub](https://gramps.discourse.group/u/DavidMStraub)\
**Post date:** [October 29, 2025, 6:26pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/7 "2025-10-29T18:26:46Z")

</div>

500 Internal server error und kein Fehler im Log ist schlicht unmöglich, sorry.

---

<div class="post-metadata">

**Author:** ![Suncity](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/suncity/32/7798_2.png) [@Suncity](https://gramps.discourse.group/u/Suncity)\
**Post date:** [October 29, 2025, 7:11pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/8 "2025-10-29T19:11:34Z")

</div>

Da steht nichts. Fehlermeldung, Nichts im Log. Wo muss ich suchen?

---

<div class="post-metadata">

**Author:** ![Suncity](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/suncity/32/7798_2.png) [@Suncity](https://gramps.discourse.group/u/Suncity)\
**Post date:** [October 29, 2025, 7:14pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/9 "2025-10-29T19:14:50Z")

</div>

![IMG_0508](https://global.discourse-cdn.com/free1/uploads/gramps/original/2X/a/a4b4aed2b568cfd5f4c9352ab9f25610633d7fd5.jpeg)

 ![IMG_0510](https://global.discourse-cdn.com/free1/uploads/gramps/original/2X/3/3df30e802d88560a34d3cd6393f7c6d2669fb09c.jpeg)

 ![IMG_0509](https://global.discourse-cdn.com/free1/uploads/gramps/original/2X/7/7a64bd0609028e2c9f1fea1ba03694e5a21cb57a.jpeg)

---

<div class="post-metadata">

**Author:** ![Suncity](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/suncity/32/7798_2.png) [@Suncity](https://gramps.discourse.group/u/Suncity)\
**Post date:** [October 29, 2025, 8:27pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/10 "2025-10-29T20:27:40Z")

</div>

File “/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py”, line 177, in handle\_request  
respiter = self.wsgi(environ, resp.start\_response)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 1536, in **call**  
return self.wsgi\_app(environ, start\_response)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 1527, in wsgi\_app  
ctx.pop(error)  
File “/usr/local/lib/python3.11/dist-packages/flask/ctx.py”, line 426, in pop  
app\_ctx.pop(exc)  
File “/usr/local/lib/python3.11/dist-packages/flask/ctx.py”, line 262, in pop  
self.app.do\_teardown\_appcontext(exc)  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 1382, in do\_teardown\_appcontext  
self.ensure\_sync(func)(exc)  
File “/usr/local/lib/python3.11/dist-packages/gramps\_webapi/app.py”, line 183, in close\_db\_connection  
close\_db(db\_write)  
File “/usr/local/lib/python3.11/dist-packages/gramps\_webapi/api/util.py”, line 424, in close\_db  
db\_handle.close()  
File “/usr/local/lib/python3.11/dist-packages/gramps/gen/db/generic.py”, line 757, in close  
self.\_set\_metadata(“name\_formats”, self.name\_formats)  
File “/usr/local/lib/python3.11/dist-packages/gramps/plugins/db/dbapi/dbapi.py”, line 380, in \_set\_metadata  
self.dbapi.execute(  
File “/usr/local/lib/python3.11/dist-packages/gramps/plugins/db/dbapi/sqlite.py”, line 136, in execute  
self.\_\_cursor.execute(\*args, \*\*kwargs)  
sqlite3.OperationalError: database is locked  
[2025-10-29 20:24:20 +0000] [38] [ERROR] Error handling request /api/objects/  
Traceback (most recent call last):  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 1514, in wsgi\_app  
response = self.handle\_exception(e)  
^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 1511, in wsgi\_app  
response = self.full\_dispatch\_request()  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 919, in full\_dispatch\_request  
rv = self.handle\_user\_exception(e)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 917, in full\_dispatch\_request  
rv = self.dispatch\_request()  
^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 902, in dispatch\_request  
return self.ensure\_sync(self.view\_functions  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/gramps\_webapi/api/auth.py”, line 44, in wrapper  
return func(\*args, \*\*kwargs)  
^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/views.py”, line 110, in view  
return current\_app.ensure\_sync(self.dispatch\_request)(\*\*kwargs) # type: ignore  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/views.py”, line 191, in dispatch\_request  
return current\_app.ensure\_sync(meth)(\*\*kwargs) # type: ignore  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/gramps\_webapi/api/resources/objects.py”, line 93, in post  
add\_object(db\_handle, obj, trans, fail\_if\_exists=True)  
File “/usr/local/lib/python3.11/dist-packages/gramps\_webapi/api/resources/util.py”, line 880, in add\_object  
return add\_method(obj, trans)  
^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/gramps/gen/db/generic.py”, line 1817, in add\_person  
return self.\_add\_base(  
^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/gramps/gen/db/generic.py”, line 1813, in \_add\_base  
commit\_func(obj, trans)  
File “/usr/local/lib/python3.11/dist-packages/gramps/gen/db/generic.py”, line 1893, in commit\_person  
old\_data = self.\_commit\_base(person, PERSON\_KEY, trans, change\_time)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/gramps/plugins/db/dbapi/dbapi.py”, line 661, in \_commit\_base  
self.dbapi.execute(sql,  
File “/usr/local/lib/python3.11/dist-packages/gramps/plugins/db/dbapi/sqlite.py”, line 136, in execute  
self.\_\_cursor.execute(\*args, \*\*kwargs)  
sqlite3.OperationalError: database is locked  
During handling of the above exception, another exception occurred:  
Traceback (most recent call last):  
File “/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py”, line 134, in handle  
self.handle\_request(listener, req, client, addr)  
File “/usr/local/lib/python3.11/dist-packages/gunicorn/workers/sync.py”, line 177, in handle\_request  
respiter = self.wsgi(environ, resp.start\_response)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 1536, in **call**  
return self.wsgi\_app(environ, start\_response)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 1527, in wsgi\_app  
ctx.pop(error)  
File “/usr/local/lib/python3.11/dist-packages/flask/ctx.py”, line 426, in pop  
app\_ctx.pop(exc)  
File “/usr/local/lib/python3.11/dist-packages/flask/ctx.py”, line 262, in pop  
self.app.do\_teardown\_appcontext(exc)  
File “/usr/local/lib/python3.11/dist-packages/flask/app.py”, line 1382, in do\_teardown\_appcontext  
self.ensure\_sync(func)(exc)  
File “/usr/local/lib/python3.11/dist-packages/gramps\_webapi/app.py”, line 183, in close\_db\_connection  
close\_db(db\_write)  
File “/usr/local/lib/python3.11/dist-packages/gramps\_webapi/api/util.py”, line 424, in close\_db  
db\_handle.close()  
File “/usr/local/lib/python3.11/dist-packages/gramps/gen/db/generic.py”, line 757, in close  
self.\_set\_metadata(“name\_formats”, self.name\_formats)  
File “/usr/local/lib/python3.11/dist-packages/gramps/plugins/db/dbapi/dbapi.py”, line 380, in \_set\_metadata  
self.dbapi.execute(  
File “/usr/local/lib/python3.11/dist-packages/gramps/plugins/db/dbapi/sqlite.py”, line 136, in execute  
self.\_\_cursor.execute(\*args, \*\*kwargs)  
sqlite3.OperationalError: database is locked

---

<div class="post-metadata">

**Author:** ![Suncity](https://yyz2.discourse-cdn.com/free1/user_avatar/gramps.discourse.group/suncity/32/7798_2.png) [@Suncity](https://gramps.discourse.group/u/Suncity)\
**Post date:** [October 30, 2025, 9:03pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/11 "2025-10-30T21:03:06Z")

</div>

Schade das ich keine Hilfe erhielt. Für alle die Lösung.  
Gramps im Docker starten. Es zeigt nach der Installation das die Datenbank gesperrt ist.  
Auf dem Synology NAS in den Grampsweb Ordner gehen. Dort den Ordner mit der Datenbank öffnen.  
Bei mir gab es dort zwei Datenbank Files. Ich habe beide umbenannt.  
Dann den Browser mit Gramps aktualisieren. Die Datenbank wird automatisch neu (leer) angelegt.

Ich konnte danach Personen und Orte anlegen, Import und Export funktioniert.

Warum die Datenbank bei der Installation gesperrt wurde? Ich dachte das ich hier eine Erklärung bekomme…

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/gramps/original/1X/2ac1e712b7adf612e31ca08a55419f4cf37c0158.png) [@system](https://gramps.discourse.group/u/system)\
**Post date:** [November 29, 2025, 9:03pm UTC](https://gramps.discourse.group/t/gramps-web-synology-schema-upgrade/8720/12 "2025-11-29T21:03:13Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
