web-dev-qa-db-ja.com

Laravel Artisanは移行することを何も言わない

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はどういう意味ですか?どうすれば移行を実行できますか?

25
totymedli

fooのことは単なる例です。 Laravelはデフォルトでapp/database/migrationsで実行される移行を探します。その--pathパラメーターを削除して、動作するかどうかを確認してください。

12
AntonNiklasson

これを試して:

最初:

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

データベースを確認してください。

29
user3474053

パス引数は、たとえば、移行を作成するためのものです。

 php artisan migrate:make create_user_table --path=app/database/migrations/user_migrations/

ただし、laravelの以前のバージョンのように、移行の実行中に使用することは文書化されていません。

--path引数を削除することはあなたのケースで動作するはずです

8
jminkler

何が私を助けました:

php artisan config:cache
php artisan migrate
4
Jan Żankowski

移行ファイルをどこにでも移動する必要はありません、ファイル名を変更するだけです;たとえば、時間の整数を増やしてから、移行を指すパスでmigrateコマンドを実行します。例:php artisan migrate --path="database/migrations/2019_07_06_145857_create_products_table.php"

1
Vahid Amiri

データベースの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 usersid int unsigned not null auto_incr主キー、name varchar(255)not null、email varchar(255)not n ull、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');
}
_
0
Nishanth ॐ

それでもデータベースを移行できない場合:

abc_migrate.phpを移行するファイルがあると仮定します。

まず、abc_folderという名前の新しいフォルダー内にファイルを配置します。次に、このコマンドを入力しますphp artisan migrate --path=database/migrations/abc_folder/

ディレクトリパスの最後にファイル名を追加する必要はありません。

できたそれが役に立てば幸い。

0
Ras