web-dev-qa-db-ja.com

データベース(database / database.sqlite)は存在しません。職人の手作業によるデータベース作品

databaseフォルダーにdatabase.sqliteファイルを作成しました。私の_.env_ファイルの内容は次のとおりです。

_DB_CONNECTION=sqlite
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=absolute\path\to\database\database.sqlite
DB_USERNAME=admin
DB_PASSWORD=
_

_php artisan tinker_およびDB::table('users')->get();を実行すると、データベースから情報を取得します。

私のDatabaseControllerは:

_class DatabaseController extends Controller
{
    public function main()
    {
        $users = DB::table('users')->get();

        return view('database',compact($users));
    }
}
_

それでも_/database_パスを要求すると、エラーが発生します:

QueryException in Connection.php line 647: Database (database/database.sqlite) does not exist. (SQL: select * from "users")

更新:一時的な修正は、configフォルダーからdatabase.phpを変更することです:

_  'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => 'absolute\path\database\database.sqlite', 
        'prefix' => '',
    ],
_

絶対パスではなく_database/database.sqlite_を返すenv('DB_DATABASE', database_path('database.sqlite'))を使用する代わりに。

13

次のようなフルパスを使用する必要があります。

DB_DATABASE=/home/laravel-project/database/database.sqlite
19
Alexey Mezenin

_DB_DATABASE=..._ファイルから_.env_を削除し、_config/database.php_のパスを使用する場合:

'database' => env('DB_DATABASE', database_path('database.sqlite')),...

(_database.sqlite_ファイルが_database/_フォルダーにある場合)、それも動作します。

8
gdfgdfg

次のコマンドを実行しました。

php artisan config:cache

php artisan config:clear

php artisan serve-サーバーを再起動しました

4

Config/database.phpファイル内:

'sqlite' => [
              'driver' => 'sqlite',
              'database' => dirname(__DIR__).'/database/database.sqlite',
            ],

次に、次のコマンドを実行します。

php artisan config:cache
php artisan config:clear
2
Sarwar Sikder

まだこの問題に直面している人のために: https://laracasts.com/discuss/channels/general-discussion/database-databasedatabasesqlite-does-not-exist-error-on-running?page=1

Sqliteは.envファイルでDB_CONNECTION = sqliteのみを必要とするため、もう一方を削除するだけです。

DB_Host
DB_PORT
DB_DATABASE
DB_USERNAME
DB_PASSWORD

その後、移行を保存して再度実行します。これが私が問題を解決する方法でした。乾杯!

1
Rodrigo

ここでの問題はHomesteadが原因だったと思います。ローカルマシン上のdatabase.sqliteファイルへの絶対パスは、仮想マシンとは異なります。

私の場合、設定する必要がありました:

DB_DATABASE=/home/vagrant/code/database/database.sqlite

または、この行をコメントアウトするだけで準備完了です。

#DB_DATABASE=
0