我正在尝试删除一个 db.sqlite 文件,重新创建它,然后使用相同的方法将一些信息插入到这个数据库中。这是我正在使用的方法:
public function destroy()
{
// Store all contents and delete the first one since this is created via seeder
$contents = $this->contents->all()->toArray();
array_shift($contents);
// Delete db file, creates it from an example file and changes permissions
system('rm -rf ../database/database.sqlite');
system('cp ../database/database.sqlite.example ../database/database.sqlite');
system('chmod 0777 ../database/');
system('chmod 0777 ../database/database.sqlite');
// Insert data
foreach ($contents as $content) {
$this->contents->create($content);
}
return response()->json(['message' => 'Data has been destroyed!']);
}
但是,当我尝试运行它时,出现了标题中描述的错误:
SQLSTATE[HY000]一般错误:8 次尝试写入只读数据库
我根据其他问题的答案建议对文件和文件夹设置 777 权限,所以我不知道为什么它不起作用。
最佳答案
你需要运行两个命令
首先,将 Laravel 目录的所有权更改为 web 组:
sudo chown -R :www-data/var/www/yourLarvelFolder
其次,赋予存储目录权限,使其可写:
sudo chmod -R 775/var/www/yourLarvelFolder/storage
关于php - Laravel + SQLite = SQLSTATE[HY000] 一般错误 : 8 attempt to write a readonly database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47835714/