迁移文件 migration
代码语言:javascript复制#创建一个迁移
php artisan make:migration create_store_categories_table
#运行所有未完成的迁移
php artisan migrate
#如果要查看到目前为止已运行哪些迁移
php artisan migrate:status
#如果您希望查看迁移将执行的 SQL 语句而不实际运行它们
php artisan migrate --pretend
#某些迁移操作具有破坏性,这意味着它们可能会导致数据丢失。为了防止您对生产数据库运行这些命令,在执行命令之前,系统将提示您进行确认。若要强制命令在没有提示的情况下运行,请使用以下标志:
php artisan migrate --force
#要回滚最新的迁移操作,您可以使用rollback Artisan 命令。此命令回滚最后一批迁移,其中可能包括多个迁移文件:
php artisan migrate:rollback
#通过向rollback命令提供step选项,可以回滚有限数量的迁移。例如,以下命令将回滚最近5次迁移:
php artisan migrate:rollback --step=5
# migrate:reset命令将回滚应用程序的所有迁移:
php artisan migrate:reset
#refresh命令将回滚所有迁移,然后执行migrate命令。这个命令有效地重新创建您的整个数据库:
php artisan migrate:refresh
# 刷新数据库并运行所有数据库seeds...
php artisan migrate:refresh --seed
#通过向refresh命令提供step选项,可以回滚并重新迁移有限数量的迁移。例如,下面的命令将回滚并重新迁移最近的五次迁移:
php artisan migrate:refresh --step=5
#migrate:fresh命令将删除数据库中的所有表,然后执行migrate命令:
php artisan migrate:fresh
php artisan migrate:fresh --seed
#执行某个迁移/回滚某个迁移,官方是不支持的,只能采用特殊办法了
php artisan migrate --path=database/migrations/temp/
php artisan migrate:rollback --path=database/migrations/temp/
数据填充 seed
代码语言:javascript复制#创建一个seed,表名为users
php artisan make:seeder UsersTableSeeder
#再创建一个seed,表名为users2
php artisan make:seeder Users2TableSeeder
#执行一个seed
php artisan db:seed --class=UsersTableSeeder
#执行所有seed,会执行DatabaseSeeder.php
php artisan db:seed
#您还可以使用migrate:fresh命令和——seed选项来为数据库播种,这将删除所有的表并重新运行所有的迁移。此命令对于完全重新构建数据库非常有用。——seeder选项可用于指定要运行的特定种子
php artisan migrate:fresh --seed
php artisan migrate:fresh --seed --seeder=UserSeeder
#某些播种操作可能会导致您更改或丢失数据。为了防止对生产数据库运行播种命令,在生产环境中执行播种命令之前,将提示您进行确认。要强制种子程序在没有提示的情况下运行,使用——force标志
php artisan db:seed --force
cat database/seeders/DatabaseSeeder.php
<?php
namespace DatabaseSeeders;
use IlluminateDatabaseSeeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// AppModelsUser::factory(10)->create();
// $this->call(UsersTableSeeder::class);
// $this->call(Users2TableSeeder::class);
$this->call([
UsersTableSeeder::class,
Users2TableSeeder::class,
]);
}
}
参考
https://laravel.com/docs/9.x/migrations
https://laravel.com/docs/9.x/seeding