thiagobrauer / laravel-incremental-migrations
该Laravel软件包扩展了命令php artisan make:migration,在迁移文件末尾添加一个增量数字,如果已存在具有相同名称的另一个迁移。它还具有自己的artisan命令来修复现有迁移的名称。
README
此Laravel软件包扩展了命令 php artisan make:migration,在具有相同名称的另一个迁移文件末尾添加一个增量数字。它还具有自己的artisan命令来修复现有迁移的名称。
假设您运行了php artisan make:migration alter_users_table创建了迁移,然后,在稍后需要创建另一个迁移以修改用户表时,您再次运行相同的命令。Laravel 8在创建新迁移之前会检查此问题,您将收到一个InvalidArgumentException,因此此软件包可能没有用处。在Laravel < 8版本中,当您运行php artisan migrate时,您将收到错误Cannot declare class AlterUsersTable, because the name is already in use.
此软件包所做的是在迁移文件末尾添加一个增量数字,因此类名永远不会相同。如果您多次运行php artisan make:migration alter_users_table,您将得到*_alter_users_table.php、*_alter_users_table_2.php、*_alter_users_table_3.php等等。
安装
composer require thiagobrauer/laravel-incremental-migrations
将服务提供者添加到您的config/app.php(Laravel 5.4及以下版本)
...
ThiagoBrauer\LaravelIncrementalMigrations\IncrementalMigrationsServiceProvider
用法
要创建新的迁移,只需像往常一样调用artisan命令
php artisan make:migration migration_name
修复现有迁移
⚠️ 不推荐在生产环境中运行的项目中使用
php artisan incremental-migrations:fix
此命令将检查所有现有的迁移,并在存在重复项时重命名它们。
Laravel 8现在包含一个"squash"(合并)功能。查看它,因为它可能使用此命令的替代方案。