У меня есть приложение Drupal 7 на стороне клиента. После изменения поля в БД с int на varchar (255) с помощью установочного файла со следующим кодом (в файле * .install):
$spec = array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'description' => t('The ID of the promotion, found in')
);
db_change_field('promotion', 'promotion_id', 'promotion_id', $spec);
База данных обновляется, но когда я сохраняю сущность с promo_id как '8sf635', он только сохранит 8 в базу данных. Также, когда я сохраняю сущность с помощью 'qsfd7aer', она сохраняет 0 в базе данных.
Может кто-нибудь сказать мне, как это может произойти?
При проверке кода сохранения сущности это выглядит :
entity_save(self::ENTITY_NAME_PROPOSITION_PROMOTION, $promotion);
и в объекте $ promotion promo_id по-прежнему является полной строкой.
Похоже, что схема таблицы не обновлена. При запуске drupal_get_schema ('dpp_bab_promotion', true) поле отображается как тип int.