Laravel5.7のmigrationでカラムを作成・追加・変更

Laravelで使用できるカラムは公式ドキュメントに記載があります。
https://readouble.com/laravel/5.7/ja/migrations.html


こちらを見ながら使用していけば問題ないでしょう。
公式ドキュメントを見るのに抵抗がある方は、一度ドキュメント全部見ておいた方がいいです。ざっと見るのであれば、4~5日もあれば十分でしょう。もちろんQitaの投稿記事などで必要な情報が出てきますが、Qiitaの場合、Laravaleのバージョンが使用しているバージョンと異なっていたら、間違ってしまう可能性がありますが、公式ドキュメントの場合は、間違いはありません。

では、公式ドキュメント記載の使用できるカラムタイプを見ていきます。
Laravel migrationのカラムコマンド


良く使いそうなコマンド
increment(‘id’); 符号なしINTを使用した自動増分ID(主キー)
integer(‘votes’);
boolean(‘confirm’); BOOLEAN
string(‘name’, 100); VARCHARカラム
char(‘name’, 100); CHARカラム
text(‘description’); TEXTカラム
dateTime(‘created_at’); DATETIMEカラム
timestamps(); NULL値可能なcreated_atとupdated_atカラム


その他のコマンド
bigIncrements(‘id’); BIGINTを使用した自動増分ID
bigInteger(‘votes’); BIGINTカラム
binary(‘data’); BLOBカラム
dateTimeTz(‘created_at’); タイムゾーン付きDATETIMEカラム
decimal(‘amount’, 8, 2); 有効(全体桁数)/小数点以下桁数指定のDECIMAL
double(‘amount’, 8, 2); 小数点以下桁数指定のDOUBLE
enum(‘level’, [‘easy’, ‘hard’]); ENUMカラム
float(‘amount’, 8, 2); float
geometry(‘positions’); geometryカラム
geometryCollection(‘positions’); Geometrycollectionカラム
ipAddress(‘visitor’); IPアドレス
json(‘options’); JSONフィールド
jsonb(‘options’); JSONBフィールド
lineString(‘positions’); LINESTRINGカラム
longText(‘description’); LONGTEXTカラム
macAddress(‘device’); MACアドレスカラム
mediumIncrements(‘id’); MEDIUMINTを使用した自動増分ID(主キー)
mediumInteger(‘votes’); MEDIUMINTカラム
mediumText(‘description’); MEDIUMTEXTカラム
morphs(‘taggable’); BIGINTのtaggable_idと文字列のtaggable_type
multiLineString(‘positions’); MULTILINESTRINGカラム
multiPoint(‘positions’); MULTIPOINT
multiPolygon(‘positions’); MULTIPOLYGONカラム
nullableMorphs(‘taggable’); morphs()カラム
nullableTimestamps(); timestamps()メソッドの別名
point(‘position’); POINTカラム
polygon(‘positions’); POLYGONカラム
rememberToken(); VARCHAR(100)でNULL値可能なremember_token
smallIncrements(‘id’); 符号なしSMALLINTを使用した自動増分ID
smallInteger(‘votes’); SMALLINTカラム
softDeletes(); ソフトデリートのためにNull値 可能なdeleted_at
softDeletesTz(); ソフトデリートのためにNull値可能なdeleted_atタイムゾーン
time(‘sunrise’); Timeカラム
timeTz(‘sunrise’); タイムゾーン付TIMEカラム
timestampsTz(); タイムゾーン付
tinyIncrements(‘id’); 符号なしTINYINTを使用
tinyInteger(‘votes’); TINYINTカラム
unsignedBigInteger(‘votes’); 符号なしBIGINTカラム
unsignedDecimal(‘amount’, 8, 2); 符号なしDECIMALカラム
unsignedInteger(‘votes’); 符号なしINTカラム
unsignedMediumInteger(‘votes’); 符号なしMEDIUMINTカラム
unsignedSmallInteger(‘votes’); 符号なしSMALLINTカラム
unsignedTinyInteger(‘votes’); 符号なしTINYINTカラム
uuid(‘id’); UUIDカラム
year(‘birth_year’); YEARカラム