我實際上正在尋找將現有資料庫映射并匯入到 symfony 6 專案中。
我知道我們可以使用以下命令來做到這一點:
php bin/console doctrine:mapping:import "App\Entity" annotation --path=src/Entity
但是,這個資料庫非常龐大并且有很多表。我不想要他們所有。
您知道“選擇”我要映射的表的方法嗎?我知道我不想以“_”或“inv_”開頭的表格。也許有一種方法可以有一個“where”子句?
uj5u.com熱心網友回復:
有一個--filer=選項,doctrine:mapping:import但我認為這不是你要找的。
如果你將你的代碼庫遷移到 symfony 和之前沒有使用過的學說和學說ORM - 重新開始并自己做所有事情會容易得多。是的,這很乏味,尤其是對于一個龐大的資料庫,但你最終會得到很多“更干凈”的物體,在這個階段你可以決定忽略哪些表。
但是,如果您仍想嘗試以某種方式“匯入”,請考慮以下步驟:
- 在您的本地開發人員環境中,創建資料庫的副本。只是沒有資料的架構。所以你有所有的表,但它們是空的(如何使用 mysqldump不要忘記使用
--no-data) - 洗掉您不想要的所有其他表
- 重命名一些,如果你認為,他們的名字不符合學說的命名約定。
- 切換到您的副本資料庫
.env(更改資料庫名稱DATABASE_URL)
現在嘗試使用 再次匯入doctrine:mapping:import。您可能需要通過重復步驟 2) 和 3) 來調整某些表格,然后再次嘗試匯入。
如果匯入成功,并且你有一堆物體,那么現在是無聊和乏味的部分。您必須手動檢查src/Entity.
根據您的資料庫(mysql、postgreSQL、sqlite 等),并非所有列型別都是您想要的。
此外,大多數many-to-one/one-to-many關系和所有 many-to-many 聯結表可能會轉換為獨立物體,例如src\CategoryToProduct.php- 這是不正確的。所以你必須洗掉它們并手動重新創建你的關系
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436414.html
