Laravel-两个包需要相同的表名
基本上在Laravel5中,我想使用两个软件包。为了简单起见,让我们将它们命名为package1和package2。这两个软件包做完全不同的事情。一个用于后期身份验证,即用户应该被允许管理帖子、评论还是站点本身,另一个用于聊天系统 当我下载package1(使用composer)并运行Laravel-两个包需要相同的表名,laravel,package,Laravel,Package,基本上在Laravel5中,我想使用两个软件包。为了简单起见,让我们将它们命名为package1和package2。这两个软件包做完全不同的事情。一个用于后期身份验证,即用户应该被允许管理帖子、评论还是站点本身,另一个用于聊天系统 当我下载package1(使用composer)并运行php artisan migrate时,它运行了一个迁移并创建了一个名为permissions的表 现在,当我尝试从package2迁移时,会出现以下错误: 基本表或视图已存在:1050表权限已存在 因此,两个包
php artisan migrate
时,它运行了一个迁移并创建了一个名为permissions
的表
现在,当我尝试从package2迁移时,会出现以下错误:
基本表或视图已存在:1050表
权限已存在
因此,两个包希望使用具有相同名称的表
我该怎么办?除了更改软件包源代码或检查所述软件包是否允许您配置要使用的表/连接之外,您什么也做不了。如果这两个包都不允许这样做,并且这两个包都决定在不允许的情况下使用表名“permissions”,那么我会说为包作者提出一个案例,因为为他们自己锁定这样一个公共表名似乎是非常糟糕的做法。@Loek是对的,如果您有两个使用相同表名的包,表结构很可能是冲突的,如果不是在这一点上,可能是在将来。因此,这似乎是一条危险的道路。如果两个包都不允许您自定义表名,并且两个包的作者都不愿意编写修复程序,那么您需要找到一个包来执行这两个包中的一个。或者您可以分叉其中一个包。如果它们写得很好,您可能只需要在迁移和模式中更改表名。或者使用
php artisan migrate:fesh
,它将删除所有表并运行所有迁移