簡體   English   中英

從實體文件創建遷移

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

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