Comment corriger l'erreur Django: "Attempt to write a readonly database" ?

Created 13 novembre 2022 | Viewed 56 | by Benjamin Edit


J'ai l'erreur suivante "Attempt to write a readonly database" avec un site web Django après avoir remplacé la base de données.

L'application Django a été déployée sur un droplet digitalocean ubuntu utilisant Nginx et Gunicorn.

Modifier le propriétaire de la base de données

Le problème était que l'application django a été déployée sur un répertoire appartenant à un utilisateur appelé par exemple 'johndoe':

/home/johndoe/

cependant le propriétaire de la base de données était "root"

ls

donne

-rw-rw-r-- 1 root     root     116928512 Sep 26 00:06 database_new.db
-rw-r--r-- 1 johndoe johndoe 116752384 Sep 26 02:07 database_old.db

pour résoudre ce problème, il suffit de changer le propriétaire de la base de données

sudo chown johndoe database.db

et l'erreur a été corrigée.

Origine de l'erreur

L'erreur était due au fait que j'ai utilisé l'utilisateur root pour scp la nouvelle base de données :

scp -rp database_new.db root@ip_address:/home/daidalos/johndoe/mysite/.

à la place de

scp -rp database_new.db johndoe@ip_address:/home/johndoe/webapps/mysite/.