2012-03-08 56 views
0

我很喜歡對內容類型字段(從節點引用到文本字段)進行更改,這會在合併重新創建的功能時導致錯誤。該錯誤是功能如何管理內容類型字段更改?

FieldException: Cannot change an existing field's type. in field_update_field() (line 234 of /var/www/htdocs/modulesfieldfield.crud.inc) 

目前,這只是影響一個合併到開發人員的工作區和臨時環境是從GIT一個乾淨的構建,因此不受影響。但它在制定更新流程時提出了一個早期標誌。

在生產中,我認爲這將是管理該內容類型的每個實例的導出,刪除內容類型,安裝重新創建的功能,將導出的數據遷移到重構的內容類型,然後應用任何可能爲此更改而定義的測試。

建議的最佳實踐過程是什麼,即從一開始就要遵循的標準?

非常感謝提前

回答

0

最好的方法是標記您的功能的版本。

  • 第一個版本:您的舊領域,它的數據
  • 第二個版本:舊的字段定義和新的。 在此版本中,您可以遷移hook_update_N()中舊字段中包含的數據。
  • 第三個版本:簡單地刪除舊的字段定義

我希望已經回答了你希望

+0

非常感謝勒布,非常類似於數據庫refactoring.Also被打從調整的文本字段您的問題一旦添加了一些開發數據,默認255從低到31。因爲它將該字段創建爲一個表列,所以它不會允許更改它可以改變其下表的位置的更改。您提出的解決方案同樣適用。非常感謝,再次。 – 2012-04-05 09:49:51