簡體   English   中英

Laravel:隊列作業表修改字段問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM