2012-03-08 10 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に下がります。これはテーブルの列としてフィールドを作成するため、テーブルの下を変更するだけの変更を許可しません。あなたが提案したのと同じ解決策が適用されます。もう一度感謝します。 –

関連する問題