1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravelのマイグレーションで指定するカラムタイプとRDBMSで生成されるカラムについて(個人用)

Posted at

Laravelのマイグレーションとは?

ドキュメントではこのように説明されている。

LaravelのSchemaファサードは、Laravelがサポートするすべてのデータベースシステムに対し、テーブルを作成、操作するために特定のデータベースに依存しないサポートを提供します。
通常、マイグレーションはこのファサードを使用して、データベースのテーブルとカラムを作成および変更します。

引用元:Laravel マイグレーション

開発者がRDBMSの種類を意識することなく管理できるようにlaravelがそれを吸収してくれていてとっても便利ですが、
実体のカラム型を知らずして使うのは怖さがあったりする。
ので、簡単にここでまとめる。

差分を吸収してくれているファイルはどこ?

Illuminate\Database\Schema\Grammars
ここに格RDBMSごとのカラム定義がある。
スクリーンショット 2023-01-11 11.56.54.png

僕はpostgresqlを使っているのでファイルを覗いてみると
例えばこんな記述がある

PostrreGrammar.php
    /**
     * Create the column definition for a text type.
     *
     * @param  \Illuminate\Support\Fluent  $column
     * @return string
     */
    protected function typeText(Fluent $column)
    {
        return 'text';
    }

    /**
     * Create the column definition for a medium text type.
     *
     * @param  \Illuminate\Support\Fluent  $column
     * @return string
     */
    protected function typeMediumText(Fluent $column)
    {
        return 'text';
    }

    /**
     * Create the column definition for a long text type.
     *
     * @param  \Illuminate\Support\Fluent  $column
     * @return string
     */
    protected function typeLongText(Fluent $column)
    {
        return 'text';
    }

laravelマイグレーションファイルで指定できる
「text・mediumText・longTextはpostgresqlでtext型で作りますよ。」
というようになっていたんですね。

このファイルを見れば何に変換されるのかわかりますね。

一覧

多分あってるはず

カラムタイプ MySQL PostgreSQL
bigInteger bigint bigint
binary blob bytea
boolean tinyint(1) boolean
char char char
date date date
dateTime datetime timestamp
decimal decimal decimal
double double double precision
float double double precision
integer int integer
ipAddress varchar(45) inet
json json json
longText longtext text
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?