laraver migrate 生成数据库迁移、填充及字段修改

2/22/2017来源:ASP.NET技巧人气:3319

1、使用Artisan的 make:migration 命令生成mission表的迁移文件 :php artisan make:migration create_mission_table --create=mission 2、结构生成器 (Schema)         打开该文件后,有一个CreateMissionTable的类,里面有up()和down()两个方法,up方法用于生成数据表,down方法用于删除数据表。按照数据表结构,完善后该类代码如下:
<?php

use Illuminate\Database\Schema\BluePRint;
use Illuminate\Database\Migrations\Migration;

class CreateMissionTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('mission', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('type_id')->unsigned();  //  等同于数据库中的 int 类型  并设置 int 列为 UNSIGNED
            $table->string('mission_title',100);  //  等同于数据库中的 VARCHAR,带一个长度
            $table->text('description');  //  等同于数据库中的 TEXT 类型
            $table->string('Technology_labels',100)->nullable(); // 允许该列的值为NULL
            $table->decimal('budget_amount', 10, 2); // 等同于数据库中的DECIMAL类型,带一个精度和范围
            $table->integer('deadline')->unsigned();
            $table->integer('end_time')->unsigned();
            $table->integer('maintain_time')->unsigned();
            $table->string('contacts',100);
            $table->string('phone',11);
            $table->string('email',50)->nullable();
            $table->string('service_address',100)->nullable();
            $table->text('remarks')->nullable();
            $table->timestamps();
        });
    }

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

3、执行迁移      在控制台执行以下命令,即可执行迁移文件,生成或更新相应的表。
php artisan migrate
4、 php artisan make:model models\mission  创建数据model





5、php artisan make:seeder missionTableSeeder  所有框架生成的填充器都位于database/seeders目录:

<?php

use Illuminate\Database\Seeder;

class missionTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('mission')->insert([
           'type_id'=>'1',
           'mission_title'=>str_random(16),
           'description'=>str_random(20),
           'Technology_labels'=>'1,2,3',
           'budget_amount'=>1000,
           'deadline'=>1475050602,
           'end_time'=>1475050602,
           'maintain_time'=>1475050602,
            'contacts' => str_random(10),
            'phone' => str_random(11),
            'email' => str_random(10).'@Gmail.com',
            'remarks' => str_random(10),
            'service_address' => str_random(10),
        ]);
    }
}

6、php artisan db:seed --class=missionTableSeeder





也可以通过tinker填充







7、添加和修改表的字段

php artisan make:migration add_fields_to_mission_table --table=mission


<?php

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

class AddFieldsToMissionTable extends Migration
{
    /**
     * Run the migrations.     *
     * @return void
     */
    public function up()
    {
        Schema::table('mission', function (Blueprint $table) {
            //
            $table->tinyInteger('state')->default(1);
            $table->tinyInteger('Pnum_limit')->default(1);
            $table->tinyInteger('Pnum')->nullable();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('mission', function (Blueprint $table) {
            //
        });
    }
}


修改表字段  $table->string('email',60)->nullable()->change();      转换为可空
php artisan migrate