คำถามติดแท็ก database

Drupal ให้เลเยอร์ abstraction abstraction ที่เป็นมาตรฐานและเป็นมาตรฐานสำหรับการเข้าถึงเซิร์ฟเวอร์ฐานข้อมูล

2
เลือกเขตข้อมูลจากสองตารางโดยใช้ db_select ()
ฉันกำลังใช้db_select()และฉันไม่เข้าใจไวยากรณ์ของfields()วิธีการ ฉันกำลังใช้join()เพื่อเข้าร่วมตารางอื่น ดังนั้นสำหรับตารางtและnฉันต้องการทำอะไรเช่น SELECT t.tid, t.field1, t.field2, n.title, n.author FROM table t INNER JOIN node n ON t.nid = n.nid; ฉันมี $results = db_select('table', 't') ->fields( ... ) ->join('node', 'n', 'n.nid = t.nid') ->execute(); แต่อย่างที่คุณเห็นฉันหลงfields()ทาง ตัวอย่างที่ฉันเห็นเฉพาะระบุเขตข้อมูลสำหรับหนึ่งตาราง: ->fields('t', array('tid', 'field1', 'field2')) ไวยากรณ์ที่ฉันต้องการใช้คืออะไร
15 database 

2
วิธีสร้างตารางในระหว่างการติดตั้งโมดูล
ฉันกำลังพยายามสร้างโมดูลสำหรับ 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, ), …
14 7  installing  database 


4
คุณจะสร้างเงื่อนไข LIKE ในแบบสอบถาม db_select () ได้อย่างไร
คุณจะสร้างLIKEเงื่อนไขในdb_select()แบบสอบถามได้อย่างไร ฉันรู้วิธีการทำสิ่งนี้ด้วยการdb_query()เรียก API แต่มีไวยากรณ์ / วิธีพิเศษสำหรับทำสิ่งนี้ด้วยdb_select()หรือไม่
14 database 

5
การรีเซ็ตสถานะ hook_update_n ของโมดูล
hook_update_Nฉันขยายโมดูลผมเคยเขียนไว้ก่อนหน้านี้และจะต้องมีการเปลี่ยนแปลงสคีบางอย่างที่ผมดำเนินการใน ฉันได้อัปเดตเวอร์ชันของโมดูลจาก7.x-1.0เป็น7.x-1.1และนำไปใช้foo_update_7100และทำงานได้ดี ปัญหาคือฉันได้ทำผิดพลาดภายในfoo_update_7100และตอนนี้ฉันได้แก้ไขแล้วฉันไม่สามารถรันการอัพเดท 7100 อีกครั้งได้ ฉันต้องการสร้าง 7101 แต่ไม่เหมาะสมเพราะการเปลี่ยนแปลงทั้งหมดของฉันยังไม่ได้ทำ ฉันพยายามรีเซ็ตสถานะของ hook_update_n ทาง: update system set schema_version=-1 where name='foo'; > Query OK, 1 row affected (0.01 sec) > Rows matched: 1 Changed: 1 Warnings: 0 จากนั้นทำdrush cc allแต่drush updatedb -yยังให้ "ไม่มีการอัพเดทฐานข้อมูลที่จำเป็น" ฉันจะแก้ปัญหานี้แทนที่จะเพียงเพิ่มhook_update_Nจำนวนได้อย่างไร
14 7  database  updating 

1
วิธีเขียนแบบสอบถาม Drupal 7 ด้วยคุณสมบัติ“ count” และ“ having”
ฉันไม่สามารถทำให้แบบสอบถามต่อไปนี้ทำงานได้ตามมาตรฐาน drupal7 .. ใครช่วยฉันได้บ้าง มันเร่งด่วนเล็กน้อย ... SELECT n.nid AS nid, n.title AS title, count(n.title) AS ncount FROM node n INNER JOIN taxonomy_index tn ON n.nid = tn.nid WHERE (n.type = 'test') AND (tn.tid IN( 23,37)) AND (n.title LIKE '%name%') AND (n.status = 1) GROUP BY n.nid HAVING ncount = 2
14 7  hooks  database 

3
NoSQL กับการตั้งค่า SQL Drupal อื่น ๆ
อะไรคือข้อดีของการใช้ NoSQL (เช่น MongoDB) เหนือ MySQL, PostGRE SQL หรือ MSSQL ใน Drupal? ข้อดีที่ได้รับจากการใช้หน่วยเก็บข้อมูลหรือการกำหนดค่าบางอย่างของ Drupal จำเป็นต้องเปลี่ยนหรือไม่?
14 7  database 

3
ดำเนินการค้นหาด้วยเงื่อนไขฟิลด์เอนทิตีที่มีหลายค่า
ฉันมีประเภทเนื้อหาที่มีฟิลด์การอ้างอิงเอนทิตีที่อนุญาตให้ผู้ใช้เพิ่มคำศัพท์ทางภาษีหลายคำในฟิลด์นั้น ฉันพยายามที่จะดำเนินการค้นหาที่คว้าโหนดที่มีชุดคำศัพท์เฉพาะทางภาษีภายในเขตข้อมูลนั้น การใช้ค่าหนึ่งค่าในฟิลด์นั้นทำงานได้ดีเช่นนั้น $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', 2) ->sort('field_last_name', DESC); ที่ 2 คือรหัสของคำที่ฉันค้นหา อย่างไรก็ตามเมื่อฉันพยายามค้นหาโหนดที่มีสองคำเฉพาะเช่นนั้น $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', [2,8]) ->sort('field_last_name', DESC); ฉันได้รับข้อผิดพลาด หมายเลขพารามิเตอร์ไม่ถูกต้อง: จำนวนตัวแปรที่ผูกไว้ไม่ตรงกับจำนวนโทเค็น: ฉันยังพยายาม $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', [2,8], 'IN') ->sort('field_last_name', DESC); ซึ่งไม่ได้ล้มเหลว แต่ไม่ได้ให้ผลลัพธ์ที่ต้องการ มันจะแสดงทุกโหนดที่มีทั้งเทอม 2 หรือเทอม …
14 8  entities  database 

2
จะสอน PhpStorm ให้จดจำ drupal {table} ไวยากรณ์ SQL ได้อย่างไร
ฉันกำลังจัดการกับโครงการ drupal เก่า ๆ ที่เต็มไปด้วยแบบสอบถาม SQL ความเข้าใจของ PhpStorm เกี่ยวกับ SQL นั้นมีประโยชน์มาก แต่ฉันมีปัญหากับการใช้ Drupalism เช่น{table_name}เดียวกัน IDE <reference> expected, got '{'บ่นว่า ฉันจะตั้งค่า PhpStorm ได้อย่างไรเพื่อที่จะเข้าใจว่าสตริงภายในเครื่องหมายปีกกาเป็นเพียงชื่อตาราง? หรืออย่างน้อยก็ทำให้ไม่สนใจวงเล็บปีกกา?
14 database 

3
มันดีเสมอไหมที่จะผ่านตัวแปรผ่าน t ()?
ฉันมีฟังก์ชั่นตัวช่วยเล็กน้อยสำหรับ hook_schema ของฉัน: function _bbcmap_schema_asr_field($description) { return array( 'type' => 'int', 'unsigned' => TRUE, 'size' => 'small', // Up to ~66k with MySQL (equivalent up to ~660.00 adjusted) 'not null' => FALSE, 'description' => t($description), ); } จากนั้นฉันก็สามารถใช้สิ่งที่ชอบ: /** * Implements hook_schema(). */ function bbcmap_schema() { $schema['la_data'] = array( 'fields' …

3
มีปัญหาอะไรบ้างถ้าฉันเปลี่ยน Mysql เป็น MariaDB? มีปัญหาเรื่อง Drush บ้างไหม?
ฉันมีไซต์Mysql drupal 7 จำนวนมากและฉันคิดว่าจะเปลี่ยนMysqlไปเป็นMariadbแต่ฉันไม่แน่ใจว่าปัญหาจะเกิดขึ้นกับฉันอย่างไร จากสิ่งที่ฉันกำลังอ่านMariadbดูเหมือนจะเป็นเพียงแค่การแทนที่Mysqlและดูเหมือนจะไม่ค่อยมีอะไรซับซ้อน ฉันสงสัยว่าMariadbจะส่งผลต่อคำสั่งdrushหรือไม่?
13 7  drush  database 

2
วิธีการใช้วันที่ mysql หรือเขตข้อมูลวันที่อย่างถูกต้องใน hook_schema ()?
ฉันเขียนไฟล์ mymodule.install ซึ่งมีข้อกำหนด schema เพื่อสร้างตารางในฐานข้อมูลของฉัน ตารางนี้มีสองเขตข้อมูล เขตข้อมูลเหล่านี้จะถูกเติมโดยผู้ใช้เมื่อพวกเขาจะเติมเนื้อหาเฉพาะ (ตัวอย่างเช่น: เพื่อระบุวันที่เผยแพร่สำหรับข่าว) ตอนนี้ฉันไม่ได้ใช้โมดูล Date ที่มีจุดประสงค์ทำให้ฉันต้องการให้ทั้งสองฟิลด์อยู่ในแถวเดียวกันในตารางฐานข้อมูลด้วยเหตุผลอื่น hook_schema กำหนดเขตข้อมูลทั้งสองด้วยวิธีนี้: 'pubblish_date' => array( 'description' => t('The pubblish date for the single news'), 'mysql_type' => 'datetime', 'not null' => FALSE, ), 'unpublish_date' => array( 'description' => t('The unpublish date for the single news'), 'mysql_type' => 'datetime', 'not …

5
ขนาดตารางฟอร์มแคชเป็นอย่างมาก
ขนาดของตารางแคชเพิ่มขึ้นเป็น 10+ GB เมื่อเดือนที่แล้วและฉันได้แก้ไขชั่วคราวโดยตัดทอน ครั้งล่าสุดที่ฉันตรวจสอบมันประมาณ 1GB ดังนั้นในอีกไม่กี่เดือนข้างหน้าก็จะถึง 10GB อีกครั้ง ควรจัดการกับสิ่งนี้อย่างไร? โปรดทราบว่าฉันได้ปิดการใช้งาน cron ทั้งหมดในเว็บไซต์นี้ หากนี่คือเหตุผลคุณควรเปิดใช้ cron ใด
13 database  caching 

3
มีความปลอดภัยที่จะตัดทอนตารางการแก้ไขฟิลด์หรือไม่?
ฉันสังเกตว่า D7 สร้างตาราง field_revision สำหรับทุกฟิลด์และทำซ้ำเนื้อหาจากสำเนาของฟิลด์ตารางแม้ว่าจะมีการปิดการแก้ไข ฉันมีตารางข้อความขนาดใหญ่และใช้พื้นที่มาก (หลาย GB) การตัดทอนตารางการแก้ไขจะปลอดภัยหรือไม่ PS: ในขณะที่ผมยังได้รายงานว่าเป็นปัญหา
13 7  entities  database  nodes 

7
การเพิ่มผู้ใช้ใหม่โดยตรงในฐานข้อมูล
ฉันได้รับไฟล์ไปยังเว็บไซต์ Drupal เพื่อให้ฉันสามารถสร้างชุดรูปแบบใหม่ อย่างไรก็ตามฉันยังไม่ได้รับวันผู้ใช้ / รหัสผ่านของ Drupal ดังนั้นฉันจึงไม่สามารถลงชื่อเข้าใช้ในพื้นที่ผู้ดูแลระบบได้ มีวิธีที่ฉันสามารถสร้างผู้ใช้ใหม่โดยตรงในฐานข้อมูลหรือวิธีอื่นหรือไม่?
13 6  users  database 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.