Django Lightsail-尝试编写一个只读数据库



我正试图在AWS Lightsail上部署我的Djago应用程序。

当我尝试登录/注册时,我会收到以下错误:

尝试写入只读数据库

我已经在谷歌上搜索解决方案很长一段时间了,并尝试设置不同的权限,甚至放弃所有权限,这可能会带来巨大的安全风险,但它仍然不起作用。

有人能帮我吗?

检查您的文件是否为bitnami所有:bitnami。(我和你一直有同样的问题,我也没能解决(

所以,如果其他人有这个问题,什么应该有效,什么对我有效:

我将db.sqlite3文件移到主项目目录之外的一个文件夹

然后,我将settings.py中该文件的地址更改为os.path.join(BASE_DIR,'..','db.sqlite3'(

虽然我觉得这确实是用户权限的问题,但这超出了我目前的技能水平。

我找到了另一个适合我的解决方案。

请参阅:https://github.com/mchesler613/django_adventures/blob/main/deploy_django_aws_bitnami.md

作者详细介绍了错误背后的细节。参见";错误:尝试写入只读数据库";


将项目根目录和数据库文件的组所有权更改为守护进程。例如:

$ sudo chgrp daemon project_directory project_directory/database_file

使项目根目录和数据库文件可由守护进程组写入。例如:

$ sudo chmod g+w project_directory project_directory/database_file

要查看数据库错误是否消失,请尝试在浏览器上重新加载Django应用程序。

我也遇到了同样的问题。将db.sqlite3模式更改为可写模式对我不起作用。我可以使用django-shell将数据添加到db.sqlite3,但从apache2,它不起作用。

最后,我将db.sqlite3所在目录的所有者更改为www-data:www-data,它就工作了。

最新更新