sails で migrate されるテーブルのカラムの型定義
さいです。
サーバーサイドのフルスタックMVCフレームワークの sails.js を触ってます。
フルスタックなので migrate 機能があります。
モデル定義するだけで、アプリケーション起動時に自動でテーブル作ってくれるヤツですね。
sail.js のモデルは Waterline なのですが、どのストレージでも同じ型定義で記載できるよう、
integer
とか string
とかそんな型定義しかありません。
具体的に MySQL でどんな型になるんや!となったので調べました。
Watarline の型定義 -> MySQLの型定義の変換は sails-mysql
モジュールの
lib/sql.js にあります。
v0.12.1 時点だと以下のようになってるっぽいです。(大文字小文字問わない)
type | size | MySQL上の型 |
---|---|---|
string | N(省略した場合 255) | varchar(N) |
text | LONGTEXT | |
array | LONGTEXT | |
json | LONGTEXT | |
mediumtext | mediumtext | |
longtext | longtext | |
boolean | BOOL | |
integer | 8 | TINYINT |
integer | 16 | SMALLINT |
integer | 32(デフォルトサイズ) | INT |
integer | 64 | BIGINT |
float | FLOAT | |
double | FLOAT | |
decimal | DECIMAL | |
date | DATE | |
datetime | DATETIME | |
time | TIME | |
binary | BLOB |
ざっと見たけど、 unsigned を数値に設定する方法はないっぽかった。。。