| laravel規(guī)則 | 數(shù)據(jù)庫規(guī)則 |
|---|---|
| $table->bigIncrements('id'); | 自增ID,類型為bigint |
| $table->bigInteger('votes'); | 等同于數(shù)據(jù)庫中的BIGINT類型 |
| $table->binary('data'); | 等同于數(shù)據(jù)庫中的BLOB類型 |
| $table->boolean('confirmed'); | 等同于數(shù)據(jù)庫中的BOOLEAN類型 |
| $table->char('name', 4); | 等同于數(shù)據(jù)庫中的CHAR類型 |
| $table->date('created_at'); | 等同于數(shù)據(jù)庫中的DATE類型 |
| $table->dateTime('created_at'); | 等同于數(shù)據(jù)庫中的DATETIME類型 |
| $table->decimal('amount', 5, 2); | 等同于數(shù)據(jù)庫中的DECIMAL類型,帶一個(gè)精度和范圍 |
| $table->double('column', 15, 8); | 等同于數(shù)據(jù)庫中的DOUBLE類型,帶精度, 總共15位數(shù)字,小數(shù)點(diǎn)后8位. |
| $table->enum('choices', ['foo', 'bar']); | 等同于數(shù)據(jù)庫中的 ENUM類型 |
| $table->float('amount'); | 等同于數(shù)據(jù)庫中的 FLOAT 類型 |
| $table->increments('id'); | 數(shù)據(jù)庫主鍵自增ID |
| $table->integer('votes'); | 等同于數(shù)據(jù)庫中的 INTEGER 類型 |
| $table->json('options'); | 等同于數(shù)據(jù)庫中的 JSON 類型 |
| $table->jsonb('options'); | 等同于數(shù)據(jù)庫中的 JSONB 類型 |
| $table->longText('description'); | 等同于數(shù)據(jù)庫中的 LONGTEXT 類型 |
| $table->mediumInteger('numbers'); | 等同于數(shù)據(jù)庫中的 MEDIUMINT類型 |
| $table->mediumText('description'); | 等同于數(shù)據(jù)庫中的 MEDIUMTEXT類型 |
| $table->morphs('taggable'); | 添加一個(gè) INTEGER類型的 taggable_id 列和一個(gè) STRING類型的 taggable_type列 |
| $table->nullableTimestamps(); | 和 timestamps()一樣但允許 NULL值. |
| $table->rememberToken(); | 添加一個(gè) remember_token 列: VARCHAR(100) NULL. |
| $table->smallInteger('votes'); | 等同于數(shù)據(jù)庫中的 SMALLINT 類型 |
| $table->softDeletes(); | 新增一個(gè) deleted_at 列 用于軟刪除. |
| $table->string('email'); | 等同于數(shù)據(jù)庫中的 VARCHAR 列 |
| $table->string('name', 100); | 等同于數(shù)據(jù)庫中的 VARCHAR,帶一個(gè)長度 |
| $table->text('description'); | 等同于數(shù)據(jù)庫中的 TEXT 類型 |
| $table->time('sunrise'); | 等同于數(shù)據(jù)庫中的 TIME類型 |
| $table->tinyInteger('numbers'); | 等同于數(shù)據(jù)庫中的 TINYINT 類型 |
| $table->timestamp('added_on'); | 等同于數(shù)據(jù)庫中的 TIMESTAMP 類型 |
| $table->timestamps(); | 添加 created_at 和 updated_at列. |
| $table->uuid('id'); | 等同于數(shù)據(jù)庫的UUID |
修改
新生成migration里up方法的Create就會變成table,然后就可以在方法里寫修改的一些代碼
Schema::table('users', function ($table) {
});
我們將name列的尺寸從 25 增加到 50:
$table->string('name', 50)->change();
我們還可以修改該列允許 NULL 值:
$table->string('name', 50)->nullable()->change();
重命名列
$table->renameColumn('from', 'to');
注意:暫不支持 enum類型的列的重命名。
刪除列
$table->dropColumn('votes');
刪除多個(gè)列:
$table->dropColumn(['votes', 'avatar', 'location']);
以上就是一些Migration的常用語句,學(xué)會Migration可以節(jié)省大量用命令行建表的時(shí)間