天天看點

laravel的資料表的遷移

遷移:建立資料表的操作 + 删除資料表的操作。 填充:往資料表裡填充寫入測試的資料(資料的插入操作)。

1.1 資料的遷移操作

在遷移過程中,操作可以分為兩個部分:建立與編寫遷移檔案、執行遷移檔案。

1.1.2 遷移檔案的建立與編寫

遷移檔案預設的位置:

laravel的資料表的遷移

1、建立遷移檔案 例:需要建立試卷的資料表,假設資料表的名字叫做paper。遷移檔案名:create_paper_table

laravel的資料表的遷移
laravel的資料表的遷移

在寫之前含義如下:

laravel的資料表的遷移

Schema門面(類)是用于操作資料表的門面,調用其具體的方法之後就可以實作建立資料表與删除資料表,文法如上。 實作試卷表paper的建立:

id 表的主鍵,自增 Paper_name 試卷名稱,唯一,varchar(100),不為空 Total_score 試卷總分,整型數字,tinyint,預設為100 Start_time 試卷開始考試時間,時間戳類型(整型int) Duration 考試時間長度,機關分鐘,整型tinyint Status 試卷是否啟用的狀态,1表示啟用,2表示禁用,預設為1,tinyint類型。

在建立資料表的列的時候遵循文法:

常用的列類型:

列類型 解釋
$table -> string('email') 等同于資料庫中的VARCHAR列
$table -> string('name', 100) 等同于資料庫中的VARCHAR,帶一個長度
$table -> increments('id') 資料庫主鍵自增ID
$table -> tinyInteger('numbers') 等同于資料庫中的TINYINT類型
$table -> integer('votes') 等同于資料庫中的INTEGER類型
$table -> enum('choices', ['foo', 'bar']) 等同于資料庫中的ENUM類型

建立資料表的遷移代碼:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePaperTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('paper', function (Blueprint $table) {
            // id  表的主鍵、自增
            $table->increments('id') -> comment('自增主鍵');
            // paper_name  試卷名稱,唯一,varchar(100),不為空
            $table->string('paper_name', 100) -> comment('試卷名稱') -> unique();
            // Total_score  試卷總分,整型數字,tinyint,預設為100
            $table->tinyInteger('total_score') -> comment('試卷總分') -> default(100);
            //start_time 試卷開始考試時間,時間戳類型(整型int)
            $table->integer('start_time') -> comment('考試開始時間');
            // duration  考試時間長度,機關分鐘,整型tinyint
            $table->tinyInteger('duration') -> comment('考試時長');
            // status 試卷是否啟用狀态:1、表示啟用。2、表示禁用。預設為1,tinyint類型
            $table->tinyInteger('status') -> comment('試卷啟用狀态') -> default(1);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('paper');
    }
}
           

如下:

laravel的資料表的遷移

1.2 執行遷移檔案

執行分為up執行和down執行。

1.2.1 up方法的執行:

先去執行(進而産生一個遷移記錄表): php artisan migrate:install
laravel的資料表的遷移
laravel的資料表的遷移

作用:用于建立記錄遷移檔案的記錄資料表。 需要執行up方法,則需要執行指令:

php artisan migrate

laravel的資料表的遷移
laravel的資料表的遷移

1.2.2 Down 方法執行:

down方法執行: 

php artisan migrate:rollback

 復原操作隻删除遷移表中的記錄和對應的資料表,其他操作不執行。

注意:删除(復原之後)會删除上一個批次的遷移記錄,并且同批次建立的資料表也會删除,但是遷移檔案依舊存在,友善後期繼續遷移(建立資料表)。 批次号:同一次被執行的多個遷移檔案其批次号相同。
在學習的php的路上,如果你覺得本文對你有所幫助的話,那就請關注點贊評論三連吧,謝謝,你的肯定是我寫博的另一個支援。