2015-09-21 2 views
0

I'm начала работы по изучению Laravel, и я только что получил проблему, пытаясь сделать первый Перенести с PHP ремесленникадля Windows Laravel 5 Не удается открыть файл базы данных SQLite и PHP ремесленника

<?php 

return [ 

    /* 
    |-------------------------------------------------------------------------- 
    | PDO Fetch Style 
    |-------------------------------------------------------------------------- 
    | 
    | By default, database results will be returned as instances of the PHP 
    | stdClass object; however, you may desire to retrieve records in an 
    | array format for simplicity. Here you can tweak the fetch style. 
    | 
    */ 

    'fetch' => PDO::FETCH_CLASS, 

    /* 
    |-------------------------------------------------------------------------- 
    | Default Database Connection Name 
    |-------------------------------------------------------------------------- 
    | 
    | Here you may specify which of the database connections below you wish 
    | to use as your default connection for all database work. Of course 
    | you may use many connections at once using the Database library. 
    | 
    */ 

    'default' => "sqlite", 

    /* 
    |-------------------------------------------------------------------------- 
    | Database Connections 
    |-------------------------------------------------------------------------- 
    | 
    | Here are each of the database connections setup for your application. 
    | Of course, examples of configuring each database platform that is 
    | supported by Laravel is shown below to make development simple. 
    | 
    | 
    | All database work in Laravel is done through the PHP PDO facilities 
    | so make sure you have the driver for your particular database of 
    | choice installed on your machine before you begin development. 
    | 
    */ 

    'connections' => [ 

     'sqlite' => [ 
      'driver' => 'sqlite', 
      'database' => storage_path('database.sqlite'), 
      'prefix' => '', 
     ], 

     'mysql' => [ 
      'driver' => 'mysql', 
      'host'  => env('DB_HOST', 'localhost'), 
      'database' => env('DB_DATABASE', 'forge'), 
      'username' => env('DB_USERNAME', 'forge'), 
      'password' => env('DB_PASSWORD', ''), 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '', 
      'strict' => false, 
     ], 

     'pgsql' => [ 
      'driver' => 'pgsql', 
      'host'  => env('DB_HOST', 'localhost'), 
      'database' => env('DB_DATABASE', 'forge'), 
      'username' => env('DB_USERNAME', 'forge'), 
      'password' => env('DB_PASSWORD', ''), 
      'charset' => 'utf8', 
      'prefix' => '', 
      'schema' => 'public', 
     ], 

     'sqlsrv' => [ 
      'driver' => 'sqlsrv', 
      'host'  => env('DB_HOST', 'localhost'), 
      'database' => env('DB_DATABASE', 'forge'), 
      'username' => env('DB_USERNAME', 'forge'), 
      'password' => env('DB_PASSWORD', ''), 
      'charset' => 'utf8', 
      'prefix' => '', 
     ], 

    ], 

    /* 
    |-------------------------------------------------------------------------- 
    | Migration Repository Table 
    |-------------------------------------------------------------------------- 
    | 
    | This table keeps track of all the migrations that have already run for 
    | your application. Using this information, we can determine which of 
    | the migrations on disk haven't actually been run in the database. 
    | 
    */ 

    'migrations' => 'migrations', 

    /* 
    |-------------------------------------------------------------------------- 
    | Redis Databases 
    |-------------------------------------------------------------------------- 
    | 
    | Redis is an open source, fast, and advanced key-value store that also 
    | provides a richer set of commands than a typical key-value systems 
    | such as APC or Memcached. Laravel makes it easy to dig right in. 
    | 
    */ 

    'redis' => [ 

     'cluster' => false, 

     'default' => [ 
      'host'  => '127.0.0.1', 
      'port'  => 6379, 
      'database' => 0, 
     ], 

    ], 

]; 

я создал файл database.sqlite, и я могу получить к нему доступ через comendline SQLite. Однако при выполнении команды migrate я получаю:

[PDOException] 
SQLSTATE[HY000] [14] unable to open de database file. 

Может ли кто-нибудь помочь мне? Я использую Windows 8 в качестве основной операционной системы.

+0

Что вы используете для размещения своего сайта? XAMPP? Homestead? – ntzm

+0

Я использую XAMMP. Я запускаю серию с помощью команды 'php -S localhost: 8888 -t public' –

+0

ОК, вам нужно проверить разрешения вашего файла' .sqlite', чтобы убедиться, что ваш веб-сервер может писать на него. – ntzm

ответ

1

Если разрешения позволяют писать в папке, просто создайте папки хранения.

Примечание. Если вы находитесь в ОС Windows Os, просто используйте git bash, чтобы использовать linux terminal command, лучший подход к использованию терминала и предотвращение ограничения команд Windows для разработки.

e-g, это как я исправить проблему.

в config/database.php:

'connections' => [ 

    'sqlite' => [ 
     'driver' => 'sqlite', 
     'database' => storage_path('database/databaseName.sqlite'), 
     'prefix' => '', 
    ], 

Затем, если вы запустите на терминале php artisan migrate, он возвращает вам [PDOException] SQLSTATE[HY000] [14] unable to open database file

Создайте папку путь по своему усмотрению, например, в терминале mkdir storage/database/databaseName.sqlite

Make убедитесь, что разрешения позволяют вам писать, а затем повторно запустить команду php artisan migrate, она возвращает сообщение об успешном завершении: Migration table created successfully.

0

Это как имя результата конфликта вы должны изменить имя базы данных в .env файл находится в корневой папке

DB_CONNECTION=sqlite 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=database.sqlite 
DB_USERNAME=homestead 
DB_PASSWORD=secret 

и обратите внимание на расширение файла базы данных (.sqlite)

Смежные вопросы