Magento2.3 更新介紹 – 阿不是阿,你要改資料表你要先講
Magento2.3版最新的資料表定義架構,你用過了嗎? 我們手把手帶您進入更通透的世界。
比起舊版magento2.2或以下,magento2.3新推出了一種更快速便捷的資料表設計,開發人員不再需要在 module.xml內更改版號、Setup資料夾中新增upgrade/install schema or data等等才能變更資料表。
官方把這一套架構叫做Declarative Schema,重點分成兩個
- Declarative Schema
- Data patch
目前在magento2.3版本當中,此架構不是必要,所以還是可以使用原本習慣的upgrade/install schema or data,但是一旦使用了Declarative schema 就像變了心的網婆,說去當兵就一去不回了,所以開發人員投資一定有風險,基金投資有賺有賠,申購前應詳閱公開說明書,請研究仔細。
這次我們會先講到如何將upgrade/install schema轉換成db_schema.xml,首先我們可以在沒有安裝該模組的環境(如果已安裝請刪掉那張表及setup_module裡面的該module)中下以下指令:
bin/magento setup:upgrade --convert-old-scripts=1 bin/magento setup:upgrade --convert-old-scripts=1
下完之後會發現在該模組中 vendor/module/etc/資料夾多了db_schema.xml的檔案,就是magento幫你轉換完schema了,之後只要資料表異動只要改這隻檔案就可以了
我們轉完了schema再來轉換upgrade/install data變成data patch的部分,使用以下指令
bin/magento setup:db-declaration:generate-patch [options] <module-name> <patch-name> 這邊option的部分 --revertable[=true | false] data patch是否可恢復。預設值為false。 --type[=<type>]指定要生成的data patch類型。預測值為data。
跑完指令後會在 vendor/module/Setup/Patch/{type}/ 資料夾中找到轉換完的檔案,以上為這次教學文,有關Declarative Schema後續的教學,請見 Magento2.3 更新介紹 – 阿不是阿,你要改資料表你要先講 (二)、Magento2.3 更新介紹 – 阿不是阿,你要改資料表你要先講 (三)。
我要留言