20170407149153451049148.png
magento通過自帶的升級腳本操作數據庫,常見問題的解決方法如下
對表的修改(增刪改等)沒有生效?
- sql目錄下是否有升級腳
- 升級腳本是否正確(看Exception日志)
-
config.xml
中有沒有升級版本號 - 有沒有清magento的configration緩存
- 如果安裝了redis,有沒有清redis緩存
升級腳本升級成功了怎么修改?
可能是想在升級腳本中對表插入一個叫customer_name
的字段,不小心輸入錯誤成了customer_wrong_name
,然后提交了代碼,腳本成功升級了,錯誤的字段也加上了,怎么修改呢?
兩種解決方法:
- 再寫一個升級腳本,修改表字段名稱
- 直接修改升級腳本,
在core_resource
表中將模塊的版本號修改為升級前的版本號,清除congfigration緩存后重新升級
第一種方法適用于已經發布到線上的腳本
第二種方法適用于本地開發,保證自己的代碼都是正確的,沒有修修補補的內容
表中新增字段成功了,但是對應的字段無法插入正確的值?
如果你是通過$object->setData('a',123)->save();
這樣的對象方法進行的數據庫操作沒有成功,試試下面的方法:
System/Cache Management/Flush Cache Storage
20170407149153414619038.png
原理:Magento采用的是ORM模型,表的數據結構保存在DDL緩存里,對表的結構進行修改后要更新DDL緩存才能正確地進行值的插入