laravel 数据迁移 数据填充

3.1.1、生成与编写迁移

php artisan make:migration create_test_table --create=test
create_test_table   生成的文件后缀名称
--create=test        生成表名为test的数据表

编写迁移文件,创建字段和表

<?php

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

class CreateArtitleTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('article', function (Blueprint $table) {
            $table->increments('id');
            $table->string('title',200)->default('')->comment('标题');
            $table->string('desn',500)->default('')->comment('描述');
            $table->unsignedInteger('uid')->default(0)->comment('用户id');
            $table->text('cnt')->comment('文章内容');
            $table->timestamps();
        });

        /*Schema::create('cate', function (Blueprint $table) {
            $table->increments('id');
            $table->string('cname',200)->default('')->comment('标题');
            $table->timestamps();
        });*/
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        /**
         * 如果表存在就删除
         */
        Schema::dropIfExists('article');
        // Schema::dropIfExists('cate');
    }
}

3.1.2、执行数据迁移

php artisan migrate
# 直接执行迁移文件中的up方法

3.1.3、回滚迁移

回滚最后一次的迁移操作, 删除(回滚)之后会删除迁移记录,并且数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。

php artisan migrate:rollback
# 直接执行迁移文件中的 down方法

回滚条件,根据数据表中的

 

根据此值来找迁移文件,然后执行迁移文件中的down方法

3.1.4、清除表后再执行迁移

php artisan  migrate:refresh
# 先执行所有的迁移文件的down方法,再执行所有的迁移文件的up方法

3.1.5、小结

  • 创建

php artisan make:migration 文件名  --create=表名

  • 编写迁移文件 [见文档]
  • 执行

php artisan migrate

  • 回滚

php artisan migrate:rollback

  • 清除表并重新执行迁移

php artisan migrate:refresh

 

3.2、数据填充

填充操作就是往数据表中写测试数据的操作。

3.2.1、创建和编写种子文件

php artisan make:seeder TestTableSeeder{种子文件的名,文件名}

 

编写种子文件代码

3.2.2、执行种子文件

# 执行指定种子的文件

php artisan db:seed --class=需要执行的种子文件名

 

# 执行全部的种子文件

php artisan db:seed   必须在DatabaseSeeder文件中定义好 call

 

# 删除表并执行迁移和种子文件

php artisan migrate:refresh --seed  必须在DatabaseSeeder文件中定义好 call

使用db:seed 执行不带参数

在DatabaseSeeder文件中run中的call方法定义我们的写的种子

这样就可以执行如下的两个命令

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章