php artisan migrate:install
で移行をインストールし、php artisan migrate:make create_teams_table
コマンドで移行を作成しました。 公式ドキュメント に従って作成した次のコマンドでそれらを実行しようとしました:
php artisan migrate --path=app/foo/migrations/2014_01_21_143531_create_teams_table.php
これにより、コンソールで次のことが表示されます。
移行するものはありません。
データベースのmigrations
テーブルは空であり、新しいテーブルも作成されません。ドキュメントのパスにfoo
と書かれている理由がわかりません。 foo
は何を意味し、どこから来たのですか?最初に、foo
が原因でパスが間違っていることを考えました。また、パスはapp
フォルダーに関連しているので、app/database/migrations
に変更しましたが、作業。他のパスの組み合わせもたくさん試しましたが、どれも機能しませんでした。
間違ったパスを入力しましたか?この場合、コンソールは他の役立つメッセージを表示すべきではありませんか? foo
はどういう意味ですか?どうすれば移行を実行できますか?
foo
のことは単なる例です。 Laravelはデフォルトでapp/database/migrations
で実行される移行を探します。その--path
パラメーターを削除して、動作するかどうかを確認してください。
これを試して:
最初:
C:\xampp\htdocs\laravel-master>php artisan migrate:reset
ロールバック:2014_03_28_142140_user_table
ロールバックするものはありません。
2番目:
C:\xampp\htdocs\laravel-master>php artisan migrate
移行済み:2014_03_28_142140_user_table
データベースを確認してください。
パス引数は、たとえば、移行を作成するためのものです。
php artisan migrate:make create_user_table --path=app/database/migrations/user_migrations/
ただし、laravelの以前のバージョンのように、移行の実行中に使用することは文書化されていません。
--path引数を削除することはあなたのケースで動作するはずです
何が私を助けました:
php artisan config:cache
php artisan migrate
移行ファイルをどこにでも移動する必要はありません、ファイル名を変更するだけです;たとえば、時間の整数を増やしてから、移行を指すパスでmigrate
コマンドを実行します。例:php artisan migrate --path="database/migrations/2019_07_06_145857_create_products_table.php"
データベースのmigrations
テーブルが空の場合、問題が発生します。解決策は作曲家からいじくり回すことです
_$ php artisan tinker
>>> Schema::drop('users')
>>> Schema::drop('password_resets')
>>> Schema::drop('orders')
>>> exit
php artisan migrate
_
上記のコマンドを実行した結果は次のとおりです。
_nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate
_
Connection.phpの行647:SQLSTATE [42S01]:ベーステーブルまたはビューが既に存在します:1050テーブル 'users'が存在します(SQL:create table
users
(id
int unsigned not null auto_incr主キー、name
varchar(255)not null、password
varchar(255)not null、_remember_token
_ varchar (100)null、_created_at
_タイムスタンプnull、_updated_at
_タイムスタンプnull)デフォルトの文字セットutf8mb4照合utf8mb4_unicode_ci)Connection.phpの449行目:SQLSTATE [42S01]:ベーステーブルまたはビューが既に存在します:1050テーブル 'users'が存在します
_nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate:rollback
Nothing to rollback.
nishanth@localhost:~/Desktop/html/hutch$ php artisan tinker
Psy Shell v0.8.17 (PHP 7.1.20-1+ubuntu16.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> Schema::drop('users')
=> null
>>> Schema::drop('password_resets')
=> null
>>> Schema::drop('orders')
=> null
>>> exit
Exit: Goodbye.
nishanth@localhost:~/Desktop/html/hutch$ php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
Migrating: 2018_08_18_071213_create_orders_table
Migrated: 2018_08_18_071213_create_orders_table
nishanth@localhost:~/Desktop/html/hutch$
_
メソッドdown()
も定義します(存在しない場合)。
それ以外の場合、表示されます
SQLSTATE [42S02]:ベーステーブルまたはビューが見つかりません:1051不明なテーブル 'XYZ.ABC'(SQL:テーブル
ABC
を削除)
_/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('ABC');
}
_
それでもデータベースを移行できない場合:
abc_migrate.php
を移行するファイルがあると仮定します。
まず、abc_folder
という名前の新しいフォルダー内にファイルを配置します。次に、このコマンドを入力しますphp artisan migrate --path=database/migrations/abc_folder/
。
ディレクトリパスの最後にファイル名を追加する必要はありません。
できたそれが役に立てば幸い。