0

次のスキーマを使用して、Drupal 7 用の独自のモジュール用に .install ファイルを作成しました。

$schema['press_release_email'] = array(
'fields' => array(
  'id'   => array(
    'type' => 'serial',
    'not null' => TRUE
  ),    
  'email_name' => array(
    'type' => 'varchar',
    'length' => 255,
    'not null' => TRUE,
    'default' => '',
  ),
  'email_address' => array(
    'type' => 'varchar',
    'length' => 255,
    'not null' => TRUE,
    'default' => '',
  ),
),
'primary key' => array('id'),
);

Drush 経由でインストールすると、次のエラー メッセージが表示されます。

PDOException: SQLSTATE[23000]: 整合性制約違反: 19 列名が一意ではありません: INSERT INTO {l10n_update_project} (name, project_type, core, version, >l10n_server, l10n_path, status) VALUES (?, ?, ?, ?, ?, ?, ?); 配列 ( [0] => drupal [1] => コア [2] => 7.x [3] => 7.22 [4] => [5] => http://ftp.drupal.org/files/ translations/7.x/drupal/drupal-7.22.%language.po [6] => 1 )

最初、最初のスキーマ フィールドの名前は「name」でしたが、名前を変更しましたが、それは役に立ちませんでした。現金も清算しました。

誰かが私に指示してくれることを願っています。

清聴ありがとうございました。

編集

<?php
function press_release_schema() {
$schema = array();

$schema['press_release_email'] = array(
  'fields' => array(
  'id'   => array(
    'type' => 'serial',
    'not null' => TRUE
  ),    
  'email_name' => array(
    'type' => 'varchar',
    'length' => 255,
    'not null' => TRUE,
    'default' => '',
  ),
  'email_address' => array(
    'type' => 'varchar',
    'length' => 255,
    'not null' => TRUE,
    'default' => '',
  ),
),
'primary key' => array('id'),
);

 return $schema;
}

function press_release_install() {
}

?>
4

0 に答える 0