質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.05%

[SQLite]PHP artisan migrate

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,231

yuus2733

score 111

昨日以前の質問自体が、自分でも意味わからなくなってしまって実行結果もおかしくなったので、
ある程度問題がない状態までやり直してみました。

Lara帳 はじめてのLaravel(7)

こちらのサイトを参考にしています。

.env

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:GvF4+ynePF4Po4rGOKpAVX1XbG8LVQ3Y2t7TuBFHces=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=sqlite
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=


database.php

'default' => env('DB_CONNECTION', 'mysql'),
    'connections' => [

        'sqlite' => [
            'driver' => 'sqlite',
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
        ],


database.phpのほうは、SQLiteに関係してるはずの部分だけ抜粋しました。
database.sqliteのファイルは、C:\Homestead\Laravel\sqlite-tools-win32-x86-3200100のなかにいれてあります。

上記の状態でphp artisan migrateを実行すると
エラーコード

 [Illuminate\Database\QueryException]
 SQLSTATE[HY000] [14] unable to open database file (SQL: select * from sqlit
 e_master where type = 'table' and name = migrations)

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


が出ます。
.envとdatabase.phpを上記のように書き換えればsqliteのデータベースに接続されるはずだと思っていたのですがエラーが出ます。
database.sqliteの置く場所が悪いのでしょうか?それとも他の設定が悪いのでしょうか。
また、Drop tableでmysqlのテーブルを落としておかしくなってしまったのでXAMMPの再インストールなどしています。それが原因でうまくいかない場合どうしたらいいでしょうか。
ご教示ください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2017/08/29 22:01

    URLはURL/リンクボタン(左から三番目の地球マーク)をご利用ください。

    キャンセル

回答 1

checkベストアンサー

+1

Windows環境としてLaravel実行環境がHomestead(Vagrant+VirtualBox or その他)の仮想OSを利用しているのか、XAMPを利用しているかで状況が変わりますが、5.4利用想定で、routes/console.phpに以下を記述して、php artisan config_test を実行し、デフォルトのデータベース設定と、sqliteのdatabase設定を確認して、配置場所と一致するか確認してみてください。
あとは、database.sqliteがsqliteとして不正なファイルだと開けないので、空ファイルを作成するかSQLite用のGUIツール等で開けるかを確認してみてください。

Artisan::command('config_test', function () {
    dd([
        config("database.default"),
        config("database.connections.sqlite.database"),
    ]);
});

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/30 21:30 編集

    config_testは
    array:2 [
    0 => "sqlite"
    1 => "sqlite"
    ]
    となるように書き換えられました。(0と1が一致してるのが正常なんですよね?)
    database.sqliteとyuus.dbというファイルをデスクトップのフォルダの中に作ってあるのですが、空の為pupSQLiteでは何も表示されませんでした。
    (これは正常だと思いますが)
    .envとdatabase.phpを書き換えてSQLiteを動作させるというのが今ひとつ理解できていません。artisan migrateも成功していないですし・・・。
    どこか解説してくれているサイトはないでしょうか?

    キャンセル

  • 2017/09/02 13:19

    .envは、Laravelで採用されているphpdotenvの働きにより、Webサーバーの環境変数に記載内容が読み込まれます。
    [vlucas/phpdotenv](https://github.com/vlucas/phpdotenv)
    次にconfig/database.phpのenv()関数が使われている所で利用されます。
    Laravelの解説としては、LaracastかLaravelNewsを見るのが一番情報量が多いです。
    https://laracasts.com/

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る