I'm trying to delete a db.sqlite file, create it again and then insert some info into this DB all in the same method. This is the method I'm using:
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!']);
}
However when I try to run it i get the error described in the title:
SQLSTATE[HY000]General Error: 8 attempt to write a readonly database
I'm setting 777 permissions on the file and the folder as recommended by others questions' answers, so I have no idea why it isn't working.
Finally I solved it by using to different methods, one to delete the DB and create again (returning all the contents) and then, the second one to insert all the contents to the new DB.