以下の記事で解決しました!
以下元記事
以下のようにカラムのタイプを確認してchange()をかけようとしたところ、エラー (Unknown database type enum requested) が発生する
if (!Schema::getColumnType('animal', 'cat') === 'int') {
$table->staring('cat')->change();
}
似ているissueが上がっていたのでみてみたけど結局は 使えない という結論になった。
https://github.com/cloudstudio/resource-generator/issues/10
このメソッドにquick try/catchを入れて、DBALExceptionsをキャッチしたときに‘enum’を返すとうまくいくようです。
って感じのことが書かれてた。わからん。
カラム属性の確認をするのに、
vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php
の public function getColumnType($table, $column) を使おうとしたのだけれど
このテーブルにenumが含まれるとDBALExceptionsが飛ぶ様子。
正確にはこれが返ってくる
In AbstractPlatform.php line 434:
Unknown database type enum requested, Doctrine\\DBAL\\Platforms\\MySQL57Platform may not support it.
MySQL57Platform は上記URLの人が言うMarinaDB同様に enum に対応していないので使えないよってことらしい。(読んだそのままだ…
どうしようもないのでチェックは諦めることにした。
せっかくあるのに使えないなんて残念。