我正试图删除一个数据库.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!']);
}

但是,当我try 运行它时,会出现标题中描述的错误:

SQLSTATE[HY000]General Error: 8 attempt to write a readonly database

100正如其他问题的答案所建议的,所以我不知道为什么它不起作用.

推荐答案

最后,我通过使用不同的方法解决了这个问题,一种是删除数据库并再次创建(返回所有内容),然后第二种是将所有内容插入新数据库.

Laravel相关问答推荐

无法在终端cPanel中打开输入文件:artisan

如何让 Laravel 的 Collection 表现得像一个流?

如何传递多个参数给路由

Laravel 5.4 - 如何为同一个自定义验证规则使用多个错误消息

上传时Laravel正在旋转图像

使用'with'时,Laravel belongsTo 返回 null

不支持驱动Driver[] - Laravel 5.3

Laravel 将参数从路由传递到过滤器

Laravel 规则和正则表达式 (OR) 运算符的问题

Laravel:自定义或扩展通知 - 数据库模型

如何仅在Blade模板存在时才包含它?

WhereHas Laravel 中的关系计数条件是什么

Laravel 错误声明 App\Exceptions\Handler::report(Throwable $exception)

如何在 laravel 用户删除中重置自动增量?

控制器中的laravel foreach循环

laravel如何访问具有表编号名称的列?

如何获取 Laravel 块的返回值?

Laravel s3 多桶

Laravel 5.2 验证错误未出现在Blade中

Laravel - artisan不工作