AirWork--基于Laravel开发团队协作工具--创建表和填充数据(五)

创建表和填充数据

基于类图创建数据库表

Laravel提供了Artisan命令行工具,可以快速创建数据库表并且留存建表文件。
上一节文章已经创建出了类图,可以根据类图中的类节点建表文件。

例子:创建Project的Migration文件

在项目的根目录下运行一下命令:

php artisan  make:migration CreateProjectsTable

运行完这个命令后,就会发现,database/migrations/2020_05_31_080922_create_projects_table.php文件,已经创建。
编辑这个文件,提供建表信息。

class CreateProjectsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('projects', function (Blueprint $table) {
            $table->id();
            $table->integer( 'flow_id' )->default( 0 )->unsigned()->index();
            $table->integer( 'owner_id' )->unsigned()->index();
            $table->string( 'owner_name', 100 );
            $table->string( "name", "100" );
            $table->string( "description", "500" );
            $table->timestamp( "deadline" )->nullable(false);
            $table->timestamps();
        });
    }

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

运行Migration

编辑好所有Migration文件后,可以运行laravel提供的命令,生成数据库表。(需要先设置好数据库连接配置)

php artisan migrate:fresh

填充数据库表

例子:创建Seeder文件

在项目的根目录下运行一下命令:

 php artisan  make:seeder InitSeeder

运行完这个命令后,就会发现,database/seeds/InitSeeder.php文件,已经创建。

编辑这个文件,提供填充的数据。

<?php

use Illuminate\Database\Seeder;
use Illuminate\Support\Collection;
use App\Models\FlowProcess;
use App\Models\Task;

class InitSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run(){
        $userCollection = factory( \App\User::class, 15 )->create();
        $userCollection->first()->name = 'zhangsan';
        $userCollection->first()->email = 'zhangsan@zhangsan.com';
        $userCollection->first()->password = Hash::make('zhangsan');
        
        /**
         * @var \App\Models\Project $project
         */
        $project = factory( \App\Models\Project::class, 1 )->make()->first();
        $project->owner_id = $userCollection->first()->id;
        $project->owner_name = $userCollection->first()->name;
        $project->flow_id = 0;
        
        $project->save();
        
        //
        $project->members()->saveMany( $userCollection );
        ...
    }
    ...

运行Seeder

运行完一下命令后,数据库对应的表中,已经存在相应的数据了。

php artisan db:seed
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值