目的
- マイグレーションファイルを用いてTinyInt型のカラム情報を変更しようとしたけどエラーが出たのでまとめる
情報
- 今回の事例はすでに作成されているTinyInt型カラムのコメントを変更しようとした。
エラーまでの経緯
-
マイグレーションファイルのup側に下記のように記載してカラムのコメントを変更しようとした。
$table->tinyInteger('カラム名')->comment('変更後のコメント')->change();
-
下記コマンドを実行してマイグレーションを実行した。
$ 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メソッドを用いた変更をする事ができない。
解決までの経緯
- 下記の方法を用いてTinyIntegerのカラムの内容を修正した。