laravel MySQL tinyInteger型のカラムはchangeできない


目的

  • マイグレーションファイルを用いてTinyInt型のカラム情報を変更しようとしたけどエラーが出たのでまとめる

情報

  • 今回の事例はすでに作成されているTinyInt型カラムのコメントを変更しようとした。

エラーまでの経緯

  1. マイグレーションファイルのup側に下記のように記載してカラムのコメントを変更しようとした。

    $table->tinyInteger('カラム名')->comment('変更後のコメント')->change();
    
  2. 下記コマンドを実行してマイグレーションを実行した。

    $ php artisan migrate
    

エラー

  • 下記のエラーが出力された。

    Unknown column type "tinyinteger" requested. Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType(). You can get a list of all the known types with \Doctrine\DBAL\Types\Type::getTypesMap(). If this error occurs during database introspection then you might have forgotten to register all database types for a Doctrine Type. 
    Use AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement Type#getMappedDatabaseTypes(). If the type name is empty you might have a problem with the cache or forgot some mapping information.
    

原因

  • 公式ドキュメントにこんな記載を発見した。https://readouble.com/laravel/6.x/ja/migrations.html

    Note: 以降のカラムタイプのみ変更可能です:bigInteger、binary、boolean、date、dateTime、dateTimeTz、decimal、integer、json、longText、mediumText、smallInteger、string、text、time、unsignedBigInteger、unsignedInteger and unsignedSmallInteger
    
  • このドキュメントによるとTinyIntegerはchangeメソッドを用いた変更をする事ができない。

解決までの経緯