在 laravel 8 中执行 运行 迁移命令时出错

Getting error while run migrate command in laravel 8

我正在使用 Laravel Cashier 包。

我在下面添加了 AppServiceProvider.php > 引导方法

 Cashier::ignoreMigrations();

我创建了自己的迁移,即:create_subscriptions_table 和 create_subscription_items_table

当我 运行 php artisan migrate 命令然后出现以下错误:

   Migrating: 2019_05_03_000002_create_subscriptions_table

   Illuminate\Database\QueryException 

  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'subscriptions' already exists (SQL: create table `subscriptions` (`id` bigint unsigned not null auto_increment primary key, `user_id` bigint unsigned not null, `name` varchar(191) not null, `stripe_id` varchar(191) not null, `stripe_status` varchar(191) not null, `stripe_plan` varchar(191) null, `quantity` int null, `trial_ends_at` timestamp null, `ends_at` timestamp null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci') 

我收到此错误是因为迁移 2019_05_03_000002_create_subscriptions_table 在 vendor 文件夹中。

我想要 运行 我自己的迁移,而不是来自供应商的迁移,所以有解决这个问题的解决方案吗?

我已通过以下步骤解决了问题:

  1. 首先我运行命令php artisan vendor:publish --tag="cashier-migrations"。它将创建一个新的迁移,我已经从新的迁移中删除了 up() 和 down() 方法的代码。

通过这样做,我们可以保持对 Cashier 包的覆盖迁移。

  1. 运行 命令 php artisan migrate