web-dev-qa-db-ja.com

フィールドコレクションまたはコンテンツタイプで使用されるフィールドの精度を変更するにはどうすればよいですか?

精度= 10、スケール= 8の10進数フィールド(つまり、field_testing)があります。精度を11に変更する必要があります。次のような移行スクリプトを作成することを計画していました。

  • Field_config行をfield_name = 'field_testing'で更新します-'precision'フィールドを11に設定します.
  • Field_testingテーブル構造を変更して、「field_testing_value」フィールドの精度を11に調整します。

これに関連するいくつかの質問:

  1. メンテナンスモードでこれを実行した場合、これは安全ですか?
  2. 他に必要なことはありますか?デフォルト値は空のままなので、変更はfield_config_instanceに入れる必要があると思います。

ありがとう、ラリー

2
lkiss80

Larry、Drupal側では、これらの変更のみを行う必要があります。field_config_instanceテーブルはデータ仕様を追跡しません。cache_fieldテーブルをクリアすることを忘れないでください。 MySQLテーブル自体も。

1
Damien McKenna

フィールドデータとフィールドデータリビジョンのテーブルを変更するだけでは、必要なものだけではないようです。

私はこれを通過して走ったdrush cc all私が次に行くとき:

/ admin/structure/types/manage/company/fields/field_ [フィールド名の残り]

まだ古い精度値が表示されます。 field_configも更新する必要がありますが、データ列を最適に変更する方法がわかりません。これは、まだ実装していない、より良いソリューションのようです。

sqlを使用してフィールドタイプを変更しようとしています:通知:未定義のインデックス:number_field_schema()の精度

0
topper 9