前回、sqliteに変更したあと、model変更してmigrateしても実行されなくて情報がなかなか出てこなかったので書いておきます。

MacでLaravelを試す際にsqliteを使用する設定

後から気付きましたが、一度マイグレーションした後に変更する場合って変更するためのマイグレーションファイルを作成して実行する必要があるんですね…

まあ新規開発だったら変更するマイグレーションファイルを作成するよりもなるべく一つにまとめたいと思うので続けます。

症状

apiの認証を試す際にUsersモデルに項目を追加してmigrateしても反映されない症状が状態になりました。

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
            $table->string('api_token',60)->unique()->nullable();
        });
    }
}

対応

キャッシュのクリア

とりあえずキャッシュをクリアして再度migrateしてみました。

php artisan cache:clear

うまく行きませんでした。

DBの再構築

キャッシュのクリアしてもうまくいかなかったので、DBを再構築します。

php artisan migrate:refresh

うまくいったっぽいです。

tinkerを使って確かめてみます。

できました。

ただ、このコマンドは全て初期化されてデータが飛ぶようなので、注意が必要です。

 

 

 

カテゴリー: PHP

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。