数据迁移及种子文件

创建数据表

# 创建home数据表
# --create=tablename 表明该迁移是用来创建表。

php artisan make:migration create_home_table --create=home 

# 对home数据表进行操作(编辑)
# --table=tablename 表明该迁移是用来对 tablename这张表进行操作。
php artisan make:migration update_home_table --table=home 

# 对编辑好的数据表文件执行
php artisan migrate

# 对数据库的操作回滚
php artisan migrate:rollback

# 删除并重新迁移
php artisan migrate:fresh

数据迁移数据表

    public function up()
    {
        Schema::create('home', function (Blueprint $table) {
            $table->bigIncrements('id')->comment('品牌ID');
            $table->string('name',50)->comment('品牌名称');
            $table->string('country',50)->comment('品牌国家');
            $table->string('hotline',50)->comment('热线');
            $table->char('indexs', 1)->index()->comment('索引首字母');
            $table->timestamps();
        });
        DB::statement("ALTER TABLE `home` comment '品牌表'");
        DB::statement("ALTER TABLE `home` ENGINE=InnoDB");
    }


    public function down()
    {
        Schema::dropIfExists('home');
        Schema::rename('home','name');//重命名在--table=home时可用
    }
 

Seeder 自动填充数据

  1. 制做一个模型
php artisan make:model Models\Home

# 文件  Models/Home.php
    //表示对应于表goods
    protected $table = 'home';

  1. 创建一个seed
php artisan make:seeder HomeTableSeeder

# 文件 database/seeds/
public function run()
{
    # 条数在这设置
    factory(App\Models\Home::class)->times(10)->create();
}

# 文件 database/seeds/DatabaseSeeder
public function run()
{
     $this->call(HomeTableSeeder::class);
}
  1. 创建一个factories
php artisan make:factory HomeFactory

# 文件 database/factories/HomeFactory

use App\Models\Home;
use Faker\Generator as Faker;

$factory->define(Home::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'describe' => $faker->text,
    ];
});

$faker用户详见github 搜索 laravel faker

php artisan migrate:fresh --seed

# 执行数据填充
php artisan db:seed
# 单独执行一个数据填充类
php artisan db:seed --class=GoodsTableSeeder

posted on 2023-02-28 13:48  何苦->  阅读(15)  评论(0编辑  收藏  举报

导航