1

I always got an error saying as:

Database (/Users/yonamineakio/Desktop/laravel_portfolio/database/database.sqlite) does not exist. (SQL: PRAGMA foreign_keys = ON;)

I think I'm setting some values correctly but the error as mentioned above always occurred. Here is some files:

database.php

?php

use Illuminate\Support\Str;

return [
    'default' => env('DB_CONNECTION', 'sqlite'),
    'connections' => [
        'sqlite' => [
            'driver' => 'sqlite',
            'url' => env('DATABASE_URL'),
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
        ]
    ]
]

.env

DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=/database/database.sqlite
DB_USERNAME=root
DB_PASSWORD=

Person.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use llluminate\Database\Eloquent\Builder;

class Person extends Model
{
    protected $guarded = array('id');
    public static $rules = array(
        'name'=> 'required',
        'mail'=> 'email',
        'age'=> 'integer'
    );
}

PersonController.php

<?php

namespace App\Http\Controllers;
use App\Person;
use Illuminate\Http\Request;

class PersonController extends Controller
{
    public function index(Request $request) {
        $items = Person::all();
        $user = Auth::user();
        $params = ['user'=>$user, 'items'=>$items];
        return view('person.index', $params);
    }

    public function create(Request $request) {
        return view('person.create');
    }

    public function store(Requst $request) {
        $this->validate($request, Person::$rules);
        $person = new Person;
        $form = $request->all();
        unset($form['_token']);
        $person->fill($form)->save();
        return view('perosns');
    }

    public function show(Request $request) {
        $id = $request->id;
        $person = Person::find($id);
        return view('persons.show', ['person'=> $person]);
    }

    public function edit(Request $request) {
        $id = $requset->id;
        $person = Person::find($id);
        return view('persons', ['person' => $person]);
    }

    public function update(Reqeust $reqeuest){
        $this->validate($reqeuest, Person::$rules);
        $id = $request->id;
        $person = Person::find($id);
        $form = $request->all();
        $person->fill($form)->save();
        return redirect('/persons');
    }

    public function remove(Request $request){
        Person::find($request->id)->delete();
        return redirect('/person');
    }
}

I completely have no idea what to do for solving the above problem. Anyone who know what to do about it please help me. If you want more information, please let me know.

Thank you.

2
  • just give DB_CONNECTION name in .env file comment rest of DB variable with # it will find sqlite file from default path it self. also create database.sqlite file under your database directory too. Commented Feb 5, 2020 at 5:41
  • Is created your DB? Commented Feb 5, 2020 at 5:46

1 Answer 1

1

Just like user @umefarooq commented, the problem is in your .env file.

Here's a configuration using only the relevant environment variable for SQLite:

DB_CONNECTION=sqlite
#DB_HOST=127.0.0.1 ## Not required for SQLite
#DB_PORT=3306 ## Not required for SQLite
DB_DATABASE=/database/database.sqlite
#DB_USERNAME=root ## Not required for SQLite
#DB_PASSWORD= ## Not required for SQLite
DB_FOREIGN_KEYS=true

Make sure you run your migrations with php artisan migrate and check that your database file exists in: /Users/yonamineakio/Desktop/laravel_portfolio/database/database.sqlite.

See Laravel documentation for SQLite:

Sign up to request clarification or add additional context in comments.

1 Comment

Thank you for your comment. I solved this issue by referencing absolute path on my .env file. changed value of DB_DATABASE to "/Users/yonamineakio/Desktop/laravel_portfolio/database/database.sqlite" in .env file

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.