Framework: 移行テーブルが存在するかどうかを確認するときに、移行でプレフィックスが考慮されない[バグ]

作成日 2013年01月11日  ·  3コメント  ·  ソース: laravel/framework

ここで見つかった元のバグ: https

IRCで町賀と話をしました-問題を作成することが提案されました。

問題:

最初の移行後のエラー: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'up_migrations' already exists

再現する手順:

  1. L4の新規インストール
  2. データベース接続構成(MySql)でデータベースにプレフィックスを追加します
  3. 移行を作成する$ php artisan migrate:make create_users_table --table=users --create
  4. いくつかのフィールドに入力し、移行を実行します$ php artisan migrate
  5. 移行を試み$ php artisan migrate:refresh更新します
  6. エラー: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'up_migrations' already exists

    関連ファイル:

私はこれを次のファイルまで追跡しました: Illuminate\Database\MigrationsDatabaseMigrationRepository::repositoryExists()そして特にその中でreturn $schema->hasTable($this->table);への呼び出しここにあります

hasTable()に渡される$ this-> table変数には、テーブルプレフィックスが含まれていません。 Illuminate\Database\Schema\MySqlBuilder::hasTable($table)はプレフィックスもチェックしません。

残念ながら、プレフィックスを検索する場所を知るためのコード/規約についてはまだよく知りません。 (どのクラスがその「知識」を持つべきかわからない)

bug

全てのコメント3件

OK、ありがとう。 修正します。

修繕。

私はこれとまったく同じ問題を抱えており、サイトからフレームワークをダウンロードしました。
修正がサイトバージョンにコミットされたのだろうか。

このページは役に立ちましたか?
0 / 5 - 0 評価