laravel 数据迁移 数据填充

    技术2022-07-10  138

    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方法定义我们的写的种子

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

     

    Processed: 0.018, SQL: 9