[英]Create migration from entity file
我有一些表,已修改。 為某些關系添加了一些注釋:
cascade={"persist", "remove"}
在 SQL 中,字段只有對另一個表的引用。
現在,我想創建一個遷移文件,並運行bin/console doctrine:migrations:diff
,但它沒有為此添加約束修改。
是否可以僅為該實體生成遷移文件?
Cascade persist 不會由您的數據庫處理,因為它與 doctrine 如何使用 UnitOfWork 處理實體有關。
級聯刪除可以通過 doctrine 或您的數據庫進行管理。
與使用onDelete
相反,使用cascade={"remove"}
不會影響您的數據庫模式。
這就是您看不到任何更改的原因,因為沒有要執行的 SQL 來更新您的實體模式。
基本上,當$entityManager
用於remove
實體時, cascade={"remove"}
將僅由 doctrine 及其 UnitOfWork 使用。
這就是為什么如果您在 SQL 中執行刪除其中一個條目的原始查詢,級聯選項將不會執行任何操作,如果您使用原始 sql 而不是 Doctrine DQL,這確實會導致錯誤。
因此,如果您不在代碼中使用任何會刪除條目的原始 sql,那么什么都不做也沒關系。
否則,您可以使用 onDelete 來修改您的數據庫結構。
你只需要像這樣remove
:
cascade={"persist"}, onDelete="CASCADE"
如果您使用它來了解更多信息,請務必查看文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.