数据库迁移与填充

作者: 上街买菜丶迷倒老太 | 来源:发表于2017-01-20 23:16 被阅读0次

    创建迁移文件

    命令php artisan make:migration create_table_admin
    格式最好是create_table_表名,执行命令完毕,会产生一个以时间开头的然后后部分自定义的文件,文件中有个up和down方法,

    up用于新增表
    down用于删除表,与up相反

    迁移结构

    Schema::create('admin',function(Blueprint $table){ $table -> increments('id'); $table -> string('account',50)->default('')->comment('账号'); $table -> string('password',250)->default('')->comment('密码'); $table -> string('nickname',5)->default('')->comment('昵称'); $table -> timestamps(); });
    Schema::create('这里填写你的表名',function(Blueprint $table){ $table -> increments('id'); //这里是主键自增ID,完全自定义,详情看laravel学院的文档 $table -> string('自定义字段名,如 account',50)->default('')->comment('账号');//自定义 $table -> string('password',250)->default('')->comment('密码');//自定义 $table -> string('nickname',5)->default('')->comment('昵称');//自定义 $table -> timestamps();//会产生两个字段(更新时间和创建时间) });
    写好要创建的字段,开始迁移 执行以下命令
    php artisan migrate
    会提示Migration table created successfully.说明命令迁移成功.到这里迁移完毕

    数据填充

    这里我使用的是模型工厂方式来填充数据
    执行命令,创建Model
    php artisan make:model Model/Admin/Admin
    这里注意 命名空间 App\Model\Admin\Admin
    创建完毕后,执行命令创建填充器
    php artisan make:seeder AdminTableSeeder
    `
    use Illuminate\Database\Seeder;

    class AdminTableSeeder extends Seeder
    {
    /**
    * Run the database seeds.
    *
    * @return void
    */
    public function run()
    {
    //factory函数是插入到数据库,命名空间一定使用你要创建那个表的模型所在的命名空间
    factory('App\Model\Admin\Admin')->create();//
    }
    }

    在ModelFactory.php文件中
    $factory->define(App\Model\Admin\Admin::class,function(Faker\Generator $fake){
    return [
    'account' => 'admin',
    'password' => Crypt::encrypt(123456),
    'nickname' => '超级管理员'
    ];
    });$factory->define(创建表的模型所在的命名空间的类,function(Faker\Generator $fake){ return [ 'account' => 'admin',//可以随机如 $fake->name; 'password' => Crypt::encrypt(123456), 'nickname' => '超级管理员' ]; });
    以上代码完毕 可以创建个测试方法测试一下是否能产生数据,
    $res = factory(\App\Model\Admin\Admin::class)->make(); dd($res);在测试方法中加上 make是只产生
    如果成功 那么执行命令

    php artisan make:seed --class=AdminTableSeeder

    AdminTableSeeder是只你所创建填充器的名字,一定要指定

    相关文章

      网友评论

        本文标题:数据库迁移与填充

        本文链接:https://www.haomeiwen.com/subject/oosgbttx.html