o-g-r
@o-g-r (yamada hanako)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

laravel miration DBのvarchar型をtext型に変更したい

Q&A

Closed

解決したいこと

migrationでvarchar型からtext型に変更したいのですが
、エラー出力されます。

例)

発生している問題・エラー

UP
        Schema::table('hoge', function (Blueprint $table) {
            $table->string('user_id', 12)->index()->change();
        })

down
        Schema::table('hoge', function (Blueprint $table) {
            $table->text('user_id')->change();
            $table->dropIndex('infos_user_id_index');
        });

例)

up時はエラーでません。
down時のエラー
SQLSTATE[42000]: Syntax error or access violation: 1170 BLOB/TEXT column 'user_id' used in key specification without a key length (SQL: ALTER TABLE hoge CHANGE user_id user_id TEXT CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_general_ci`)

自分で試したこと

ここに問題・エラーに対して試したことを記載してください。

こちらを参考にしましたがうまくいきませんでした。

0

1Answer

自己解決しました。
テキストは、indexを張っていると使用できないようなので、先にindexをdropさせて、その後テキストに変換したらいけました。

   Schema::table('hoge', function (Blueprint $table) {
        $table->dropIndex('infos_user_id_index');
    });
   Schema::table('hoge', function (Blueprint $table) {
         $table->text('user_id')->change();
    });
0Like

Your answer might help someone💌