[英]Laravel: queues jobs table modify fields problem
因此,基本上我需要将作业的id类型和laravel创建的失败的作业迁移更改为uuid,但这会向我显示此错误。
SQLSTATE [23502]:不为null违反:7错误:\\“ id \\”列中的null值违反了non-null约束。
我正在使用队列数据库驱动程序。
我试图在框架文件中更改模型,并且可以正常工作,但这就像我的关键核解决方案一样。
如果有更好更好的解决方案,您可能会想到的。
提前致谢!
该问题是由laravel无法自动生成UUID引起的。 通常,如果您希望模型使用uuid,则可以覆盖其引导功能并提供uuid创建逻辑。 例如,您可以在此处查看其运行情况:
https://medium.com/binary-cabin/automatically-generating-a-uuid-on-your-laravel-models-b8b9c3599e2b
但是,作业和失败作业表不是模型。 如果检查Illuminate / Queue / DatabaseQueue类,您将看到它只是进行基本的数据库更新,插入。 因此,如果您真的必须更改这些表以使用UUID,那么您唯一的选择就是重构该核心laravel代码(不建议使用)。
您可以采用的另一种方法是,为作业和失败的作业创建2个新的中间模型(例如MyJob和MyFailedJob),并在原始表上使用sql触发器填充这些表。 您可以在这些中间模型上使用uuid。
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.