Laravel5.2中實現資料庫遷移與資料填充的執行個體

來源:互聯網
上載者:User

一、資料庫遷移

Laravel 的資料庫遷移提供了對資料庫、表、欄位、索引的一系列相關操作。下面以建立友情連結資料表為例。

1. 建立遷移

使用 Artisan 命令 php artisan make:migration create_links_table

這樣就在 database/migrations 目錄下產生一個名為 2017_05_06_151645_create_links_table.php 檔案。名字的前半段 "2017_05_06_151645_" 是 Laravel 增加的時間戳記。後半段 "create_links_table.php" 是表名字。

2. 編寫邏輯

然後,開啟這個遷移類 2017_05_06_151645_create_links_table.php ,裡面有兩個方法: up() 和 down() 。up() 方法建表,down() 方法刪表。


<?phpuse Illuminate\Database\Schema\Blueprint;use Illuminate\Database\Migrations\Migration;class CreateLinksTable extends Migration{    /**     * 執行遷移     *     * @return void     */    public function up()    {        Schema::create('links', function (Blueprint $table){            $table->engine = 'MyISAM';            $table->increments('id');            $table->string('name')->default('')->comment('名稱');            $table->string('title')->default('')->comment('標題');            $table->string('url')->default('')->comment('地址');            $table->integer('sort')->default(50)->comment('排序');        });    }        /**     * 復原遷移     *     * @return void     */    public function down()    {        Schema::drop('links');    }}2017_05_06_151645_create_links_table.php

3. 執行遷移

使用 Artisan 命令 php artisan migrate

現在,資料庫中已經建立了一張 hd_links 表 和 一張記錄遷移的表 hd_migrations ("hd_" 是配置的表首碼):

注意:如果手動刪除了遷移類並且檔案無法重新建立,使用 composer dump-autoload 命令最佳化一下自動載入就可以重新建立遷移了。

二、資料填充

可用於測試,為資料庫中的表填充一些資料。

1. 建立填充

使用 Artisan 命令 php artisan make:seeder LinksTableSeeder

這將在 database/seeds 目錄下產生一個名為 LinksTableSeeder.php 的友情連結填充類。

2. 編寫邏輯

然後,開啟這個 LinksTableSeeder.php 檔案,添加兩條測試記錄。


<?phpuse Illuminate\Database\Seeder;class LinksTableSeeder extends Seeder{    /**     * 運行資料庫填充     *     * @return void     */    public function run()    {        $data = [            [                'name' => 'Laravel 中文社區',                'title' => 'Laravel China 社區 - 高品質的 Laravel 和 PHP 開發人員社區 - Powered by PHPHub',                'url' => 'https://laravel-china.org/',                'sort' => '49'            ],            [                'name' => 'GitHub',                'title' => 'GitHub is where people build software. More than 21 million people use...',                'url' => 'https://github.com',                'sort' => '49'            ]        ];        DB::table('links')->insert($data);    }}

3. 調用填充

在 database/seeds 目錄下的 DatabaseSeeder.php 這個資料庫填充類中,在 run() 方法內調用填充。

DatabaseSeeder.php 檔案內容:


<?phpuse Illuminate\Database\Seeder;class DatabaseSeeder extends Seeder{    /**     * 運行資料庫填充     *     * @return void     */    public function run()    {        $this->call(LinksTableSeeder::class);    }}

4.執行填充

使用 Artisan 命令 php artisan db:seed

現在,資料庫中的 hd_links 表就有了2條記錄:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.