2010-12-30 10 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がfunction test_update_6100(){$ ret = array()でした。 $スペック=配列( \t '記述' => T( 'クライアント')、 \t 'タイプ' => 'VARCHAR' \t '長さ' => '20'、 \t 'NOT NULL' => TRUE、\t ); db_add_field($ ret、 'info'、 'client'、$ spec、$ keys_new = array()); $ retを返します。 } – user550265

2

更新機能だけでなく、元のhook_schema()関数に必ず含めるようにしてください。

関連する問題