web-dev-qa-db-ja.com

モジュールのインストール中にテーブルを作成する方法

Drupal 7のモジュールを作成しようとしています。3つのテーブルを作成してそれを設定する必要があります。しかし、最初に作成する必要があります。

私の持っているファイルmymodule.installで

function mymodule_install() {

}

function mymodule_uninstall() {

}


function myodule_schema() {
  $schema['mymodule_table'] = array(
    'description' => t('First table'),
    'fields' => array(
      'id' => array(
        'description' => t('My unique identifier'),
        'type' => 'int',
        'unsigned' => true,
        'not null' => true,
      ),
      'list' => array(
        'description' => t('list'),
        'type' => 'varchar',
        'not null' => true,
      ),
    ),
    'primary key' => array('id'),
  );
  return $schema;     
}

何が悪いのですか?モジュールをテストするたびに、モジュールを無効にする->アンインストール->パフォーマンスキャッシュをクリアする->有効にする。

14
Tyler Durden

length列( 'list')のvarcharプロパティがありません。 lengthは必須なので、CREATE TABLEクエリは失敗します。

Schema API docs から:

タイプ「数値」列は「精度」と「スケール」を指定する必要があり、「varchar」列は「長さ」を指定する必要があることを除いて、「タイプ」を除くすべてのパラメーターはオプションです。

11
Clive

myodule_schemaにはタイプミスがあります。 mの後にyがありません。

4
BetaRide