web-dev-qa-db-ja.com

PHPの職人はそのようなファイルやディレクトリを移行しません

Make:migrationを作成しました。移行を実行しようとすると、次のエラーが発生します。

そのようなファイルまたはディレクトリはありません(SQL:select * from information_schema.tables where table_schema = Homestead and table_name = migrations)。

私のenvファイルでは私のdb名はHomesteadであり、私のdbにはmigrationsという名前のテーブルがあります。なぜこのエラーが発生するのかよくわかりません。

3
Aaron

1)コマンドを実行します:

コンポーザーダンプ-自動ロード

2)ロールバックコマンド:

php職人migrate:rollback

次に、移行を作成します。

php職人make:migration create_users_table

8
Sunny Doshi

これが私のために働いたものです。 Homestead vagrantボックスを他のVagrantボックスやDockerイメージとともにさまざまなプロジェクトで使用しているため、HomesteadボックスのIPは127.0.0.1ではなく192.168.10.10でした。 int .envファイルのIPアドレスを次のように更新するまで、SQLSTATE[HY000] [2002]のバリエーションを取得していました。

DB_CONNECTION=mysql
DB_Host=192.168.10.10
DB_PORT=3306
DB_DATABASE=Homestead
DB_USERNAME=Homestead
DB_PASSWORD=secret

そして私のconfig/database.php

'mysql' => [
        'driver' => 'mysql',
        'Host' => env('DB_Host', '192.168.10.10'),
        'port' => env('DB_PORT', '3306'),
...

変更後、php artisan cache:clearphp artisan config:clearも実行しました。その後実行

php artisan migrate

戻ってきた

Migration table created successfully.

それが誰かを助けることを願っています。 HomesteadマシンのIPはHomestead/Homestead.yamlファイルで確認できます。

10

ドキュメント でそれは言う:

Homestead仮想マシンを使用している場合は、この[php artisanmigrate]コマンドを 仮想マシン内 から実行する必要があります。

その後

Homesteadディレクトリからvagrant sshターミナルコマンドを発行することにより、仮想マシンにSSHで接続できます。

したがって、vagrant sshを使用するか、 ドキュメントの関数 を設定する場合は、Homestead sshを使用します。

Vagrant/homstead仮想マシンにログインしたら、コードの場所に移動します。私の場合、cd Code/my-project-nameを実行する必要があります。これは、Homestead.yamlファイルでHomesteadをどのように設定しているかによって異なります。

プロジェクトフォルダに移動したので、php artisan migrateを実行します。

それでも機能しない場合は、.envファイルで DB_PORTは3306 であることを確認してください。

1
zechdc