2010-12-30 2 views
1

У меня есть установочный файл на месте, который создает таблицу, когда модуль впервые включен. На полпути в использовании модуля, я хочу, чтобы обновить таблицу с дополнительным столбцом я пишу код для него, какОбновление схемы drupal

'salary' => array(
    'description' => t('Salary: '), 
    'type' => 'int', 
    'unsigned'=> TRUE, 
    'not null' => TRUE, 
), 

Это идет в определении схемы. Теперь, чтобы добавить его в базу данных, я использую функцию обновления как

function test_update_6001(){ 
    $ret = array(); 
    $spec = array(

    'description' => t('Salary: '), 
    'type' => 'int', 
    'unsigned'=> TRUE, 
    'not null' => TRUE, 

); 
    db_add_field($ret,'info','salary',$spec); //info is the tablename and salary is the column to be added 

    return $ret; 
    drupal_install_schema('stalker'); 
} 

Это не обновление схемы. Мне не хватает шага?

ответ

0

После возвращения вам не нужно звонить drupal_install_schema, но это не так. Нет ошибки при запуске скрипта update.php?

+0

Ошибка была N, которую я использовал, должна быть функцией test_update_6100() {$ ret = array(); $ Спецификация = массив ( \t 'описание' => т ('Клиент:'), \t 'тип' => 'VARCHAR', \t 'Длина' => '20', \t 'не равно нулю' => TRUE, \t ); db_add_field ($ ret, 'info', 'client', $ spec, $ keys_new = array()); return $ ret; } – user550265

2

Убедитесь, что вы включили его в оригинальную функцию hook_schema(), а не только в функцию обновления.