我想删除一个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]General Error: 8 attempt to write a readonly database
我按照其他问题答案的建议将文件和文件夹权限设置为777,因此我不知道为什么它不能正常工作。