Laravel migration 创建数据表schema命令大全

$table->bigIncrements('id');   自增ID,类型为bigint
$table->bigInteger('votes');   等同于数据库中的BIGINT类型
$table->binary('data');    等同于数据库中的BLOB类型
$table->boolean('confirmed');  等同于数据库中的BOOLEAN类型
$table->char('name', 4);   等同于数据库中的CHAR类型
$table->date('created_at');    等同于数据库中的DATE类型
$table->dateTime('created_at');    等同于数据库中的DATETIME类型
$table->dateTimeTz('created_at');  等同于数据库中的DATETIME类型(带时区)
$table->decimal('amount', 5, 2);   等同于数据库中的DECIMAL类型,带一个精度和范围
$table->double('column', 15, 8);   等同于数据库中的DOUBLE类型,带精度, 总共15位数字,小数点后8位.
$table->enum('choices', ['foo', 'bar']);   等同于数据库中的 ENUM类型
$table->float('amount');   等同于数据库中的 FLOAT 类型
$table->increments('id');  数据库主键自增ID
$table->integer('votes');  等同于数据库中的 INTEGER 类型
$table->ipAddress('visitor');  等同于数据库中的 IP 地址
$table->json('options');   等同于数据库中的 JSON 类型
$table->jsonb('options');  等同于数据库中的 JSONB 类型
$table->longText('description');   等同于数据库中的 LONGTEXT 类型
$table->macAddress('device');  等同于数据库中的 MAC 地址
$table->mediumIncrements('id');    自增ID,类型为无符号的mediumint
$table->mediumInteger('numbers');  等同于数据库中的 MEDIUMINT类型
$table->mediumText('description'); 等同于数据库中的 MEDIUMTEXT类型
$table->morphs('taggable');    添加一个 INTEGER类型的 taggable_id 列和一个 STRING类型的 taggable_type列
$table->nullableTimestamps();  和 timestamps()一样但允许 NULL值.
$table->rememberToken();   添加一个 remember_token 列: VARCHAR(100) NULL.
$table->smallIncrements('id'); 自增ID,类型为无符号的smallint
$table->smallInteger('votes'); 等同于数据库中的 SMALLINT 类型
$table->softDeletes(); 新增一个 deleted_at 列 用于软删除.
$table->string('email');   等同于数据库中的 VARCHAR 列  .
$table->string('name', 100);   等同于数据库中的 VARCHAR,带一个长度
$table->text('description');   等同于数据库中的 TEXT 类型
$table->time('sunrise');   等同于数据库中的 TIME类型
$table->timeTz('sunrise'); 等同于数据库中的 TIME 类型(带时区)
$table->tinyInteger('numbers');    等同于数据库中的 TINYINT 类型
$table->timestamp('added_on'); 等同于数据库中的 TIMESTAMP 类型
$table->timestampTz('added_on');   等同于数据库中的 TIMESTAMP 类型(带时区)
$table->timestamps();  添加 created_at 和 updated_at列
$table->timestampsTz();    添加 created_at 和 updated_at列(带时区)
$table->unsignedBigInteger('votes');   等同于数据库中无符号的 BIGINT 类型
$table->unsignedInteger('votes');  等同于数据库中无符号的 INT 类型
$table->unsignedMediumInteger('votes');    等同于数据库中无符号的 MEDIUMINT 类型
$table->unsignedSmallInteger('votes'); 等同于数据库中无符号的 SMALLINT 类型
$table->unsignedTinyInteger('votes');  等同于数据库中无符号的 TINYINT 类型
$table->uuid('id');    等同于数据库的UUID


// 创建指定数据表
 Schema::create('table', function($table)
{
  $table->increments('id');
});
// 指定一个连接
 Schema::connection('foo')->create('table', function($table){});
// 通过给定的名称来重命名数据表
 Schema::rename($from, $to);
// 移除指定数据表
 Schema::drop('table');
// 当数据表存在时, 将指定数据表移除
 Schema::dropIfExists('table');
// 判断数据表是否存在
 Schema::hasTable('table');
// 判断数据表是否有该列
 Schema::hasColumn('table', 'column');
// 更新一个已存在的数据表
 Schema::table('table', function($table){});
// 重命名数据表的列
$table->renameColumn('from', 'to');
// 移除指定的数据表列
$table->dropColumn(string|array);
// 指定数据表使用的存储引擎
$table->engine = 'InnoDB';
// 字段顺序,只能在 MySQL 中才能用
$table->string('name')->after('email');

索引

$table->string('column')->unique();
$table->primary('column');
// 创建一个双主键
$table->primary(array('first', 'last'));
$table->unique('column');
$table->unique('column', 'key_name');
// 创建一个双唯一性索引
$table->unique(array('first', 'last'));
$table->unique(array('first', 'last'), 'key_name');
$table->index('column');
$table->index('column', 'key_name');
// 创建一个双索引
$table->index(array('first', 'last'));
$table->index(array('first', 'last'), 'key_name');
$table->dropPrimary(array('column'));
$table->dropPrimary('table_column_primary');
$table->dropUnique(array('column'));
$table->dropUnique('table_column_unique');
$table->dropIndex(array('column'));
$table->dropIndex('table_column_index');

外键

$table->foreign('user_id')->references('id')->on('users');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'|'restrict'|'set null'|'no action');
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade'|'restrict'|'set null'|'no action');
$table->dropForeign(array('user_id'));
$table->dropForeign('posts_user_id_foreign');

字段类型


// 自增
$table->increments('id');
$table->bigIncrements('id');
 
// 数字
$table->integer('votes');
$table->tinyInteger('votes');
$table->smallInteger('votes');
$table->mediumInteger('votes');
$table->bigInteger('votes');
$table->float('amount');
$table->double('column', 15, 8);
$table->decimal('amount', 5, 2);
 
// 字符串和文本
$table->char('name', 4);
$table->string('email');
$table->string('name', 100);
$table->text('description');
$table->mediumText('description');
$table->longText('description');
 
// 日期和时间
$table->date('created_at');
$table->dateTime('created_at');
$table->time('sunrise');
$table->timestamp('added_on');
// Adds created_at and updated_at columns
 // 添加 created_at 和 updated_at 行
$table->timestamps();
$table->nullableTimestamps();
 
// 其它类型
$table->binary('data');
$table->boolean('confirmed');
// 为软删除添加 deleted_at 字段
$table->softDeletes();
$table->enum('choices', array('foo', 'bar'));
// 添加 remember_token 为 VARCHAR(100) NULL
$table->rememberToken();
// 添加整型的 parent_id 和字符串类型的 parent_type
$table->morphs('parent');
->nullable()
->default($value)
->unsigned()