当前位置: 代码迷 >> 综合 >> laravel 数据迁移 数据填充
  详细解决方案

laravel 数据迁移 数据填充

热度:36   发布时间:2023-10-10 22:40:06.0

3.1.1、生成与编写迁移

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

laravel 数据迁移 数据填充

laravel 数据迁移 数据填充

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

<?phpuse 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方法

laravel 数据迁移 数据填充

laravel 数据迁移 数据填充

3.1.3、回滚迁移

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

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

laravel 数据迁移 数据填充

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

laravel 数据迁移 数据填充

 

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

3.1.4、清除表后再执行迁移

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

laravel 数据迁移 数据填充

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{种子文件的名,文件名}

laravel 数据迁移 数据填充

 

laravel 数据迁移 数据填充

编写种子文件代码

laravel 数据迁移 数据填充

3.2.2、执行种子文件

# 执行指定种子的文件

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

 

# 执行全部的种子文件

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

 

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

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

laravel 数据迁移 数据填充

使用db:seed 执行不带参数

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

laravel 数据迁移 数据填充

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

laravel 数据迁移 数据填充