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