วิธีสร้างตารางในระหว่างการติดตั้งโมดูล


14

ฉันกำลังพยายามสร้างโมดูลสำหรับ 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;     
}

ผมทำอะไรผิดหรือเปล่า? ทุกครั้งที่ฉันทดสอบโมดูลฉันปิดการใช้งาน -> ถอนการติดตั้ง -> แคชล้างประสิทธิภาพ -> เปิดใช้งาน


3
หากคุณติดตั้ง drush และ devel ไว้คุณสามารถใช้drush devel-reinstall mymoduleเพื่อติดตั้งโมดูลของคุณใหม่ได้อย่างรวดเร็ว
FLY

คำตอบ:


11

คุณไม่มีlengthคุณสมบัติสำหรับvarcharคอลัมน์ ('รายการ') lengthจำเป็นต้องมีเพื่อให้CREATE TABLEแบบสอบถามจะล้มเหลว

จากเอกสาร Schema API :

พารามิเตอร์ทั้งหมดนอกเหนือจาก 'type' เป็นทางเลือกยกเว้นคอลัมน์ 'ตัวเลข' ที่ต้องระบุ 'ความแม่นยำ' และ 'สเกล' และคอลัมน์ 'varchar' ต้องระบุ 'ความยาว'


4

myodule_schemaมีการพิมพ์ผิด จะหายไปหลังจากที่my


ขอบคุณ BetaRide มันเป็นความผิดพลาดในการถอดความ ฉันให้คุณหนึ่งคะแนนเพราะคุณได้อ่านโพสต์ของฉันและจริง ๆ แล้วฉันพบข้อผิดพลาดการสะกดชื่อของฟังก์ชั่น eh eh
Tyler Durden
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.