drupal

New Blog's DB

Tags: 

หลังจาก Upgrade drupal 6 มาเป็น 7 แล้วพบ Error จำนวนหนึ่ง (แต่หลังๆ ไม่เจอแล้ว) ก็รู้สึกว่าไอ้ database ที่ใช้อยู่มันเน่าๆ (คือ ซนกับมันมาเยอะ แถมใช้มายาวนาน) ก็เลยหาทางจะทำความสะอาดสักหน่อย ค้นๆ ดูข้อมูล เจอแต่คำแนะนำว่า "ตารางไหนไม่ได้ใช้ให้ลบไปเลย" T T ก็รู้สึกว่ามันโหดไปหน่อย

พอหาวิธีไม่ได้ เลยลองมั่วๆ เอา คือ ติดตั้ง Drupal สะอาดๆ และโมดูล รุ่นที่ตรงกับที่ใช้อยู่จริง แล้วลบข้อมูลใน Database ที่ได้ทิ้งไป (คือ ต้องการตารางสะอาดๆ) แล้วก็ Export data ที่อยู่ใน database เดิม มาใส่ใน database ก้อนใหม่ เฉพาะในตารางที่มีอยู่

ตอนแรกก็นึกว่าจะใช้ไม่ได้ ปรากฏว่ามันใช้ได้ ที่สำคัญ ไอ้ที่เราคิดว่ามัน alter table ไว้จนเน่านั้น อันที่จริงมันไม่ได้เน่าเท่าไหร่ แต่ขยะที่เกินๆ มาคือ ตารางของโมดูลที่เคยติดไว้ แล้วถอดทิ้งไปแล้ว แต่ตารางมันไม่ได้ถอดทิ้งไปด้วย

สรุปว่า ตอนนี้ blog ผมทำงานอยู่บน DB ก้อนใหม่ละ ไม่รู้ว่าจะทำงานราบรื่นดีไม๊

ปล. ที่เอามาเขียนนี่ไม่ใช่อะไร จะทดสอบ DB เฉยๆ :P

Upgrade blog to Drupal7

เมื่อวานเกิดคึก อยากจะอัปเกรด Blog จาก Drupal 6 ไป 7 + โมดูลที่ใช้พร้อมที่จะให้อัปเรกดแล้วด้วย (คือ ใช้ไม่เยอะนัก) ก็เลยจัดซะ แก้คัน เวอร์ชั่นที่อัปคือ จาก 6.22 ไป 7.7

ครั้งแรกลอง ก็ เน่าครับ เรียบร้อย ปิดโมดูลต่างๆ เรียบร้อย แต่ลืมปรับธีมกลับเป็น Default เซ็งเลย เลยกลับมาหา Instruction อ่าน เราผิดเองที่นิสัยไม่ดี ครั้งก่อนอัปจาก 5 มา 6 ก็ประมาณนี้แหละ แบ่บว่าไม่เข็ด

ก็นั่งหาวิธี ซึ่งเรารู้อยู่แล้วว่าในแพกเกจของ Drupal ที่ดาวน์โหลดมามันต้องมีวิธีแนะนำอยู่แล้ว ก็คุ้ยๆ ดู เจอไฟล์ UPGRADE.txt อ่านโดยสรุปๆ แล้ว ได้ขั้นตอนตามนี้

  1. ตรวจสอบโมดูลและธีมที่ใช้อยู่ ว่ามีให้ใช้ใน 7 หรือเปล่า
  2. อัปเดตทุกสิ่งทุกอย่างให้เป็นเวอร์ชั่นล่าสุด
  3. ล๊อกอินเป็น user 1
  4. ไปสั่ง Off-line ที่ Site maintenance
  5. เปลี่ยนธีมกลับเป็น Garland เพราะเป็นธีมที่ต้องใช้ในการอัปเกรด
  6. ปิดทุกโมดูลที่ไม่ใช่ Core และ Core optional แต่ของผมลบทิ้งไปเลย เพราะอัปหลายรอบไม่ผ่าน เลยพยายามเคลียร์ Database แต่ก็มาพบว่า การ Uninstall module นั้น ไม่ได้ช่วยอะไรเท่าไหร่นัก เพราะตารางก็ยังคงเน่าอยู่อย่างเดิม T T
  7. ลบไฟล์ sites/default/default.settings.php เพราะเดี๋ยวจะต้องเอาของเวอร์ชั่น 7 มาแทน
  8. ลบไฟล์และโฟลเดอร์ของ Drupal ทั้งหมดทิ้ง ยกเว้นโฟลเดอร์ sites ส่วนของผมอัปต่อเนื่องมาตั้งกะ 4 เลยยังมีโฟลเดอร์ files อยู่ (วางอยู่นอก sites) ก็ เก็บไว้ด้วย
  9. ถ้ามีโมดูลที่ Uninstall ไปแล้วก็ตามไปลบไฟล์ใน sites/all/ ด้วย
  10. ดาวน์โหลด DP7 มาไว้ที่ Document root แล้วแตกไฟล์ซะ พร้อมจัดวางไฟล์ให้เข้าที่เข้าทาง
  11. อย่าลืม .htaccess หรือ robots.txt ด้วย
  12. แก้ไขสิทธิ์ของไฟล์ sites/default/settings.php ให้เขียนได้ เพราะเดี๋ยวมันต้องเขียนคอนฟิกซ์ใหม่ลงไป
  13. รัน update.php อย่าลืมแก้ $update_free_access ใน sites/default/settings.php ด้วย
  14. อัปเสร็จแล้วก็แบคอัปด้วย อีกสักรอบ + แก้ $update_free_access คืน แล้วก็ยกเลิกสิทธิ์การเขียนไฟล์ของ sites/default/settings.php เป็นอันเสร็จพิธี
  15. อย่าลืมปิด Site-off line ที่ Administration > Configuration > Development > Maintenance mode

ส่วนประสบการณ์ของผมนั้นเลวร้ายมาก อัปยังไงก็ไม่ผ่าน เลยลองเอามาอัปใน Localhost ดันผ่าน ก็เลยย้าย DB จาก Localhost นั่นแหละ ขึ้นไปเลย พอแก้ Config DB วางไฟล์เรียบร้อยแล้ว ก็ยังเข้าเว็บไม่ได้ มันบอกว่าเชื่อมต่อ DB ไม่ได้ ไล่หาอยู่ตั้งนาน ปรากฏว่า มันเขียน Config DB ใหม่ จากบรรทัดเดียวไปเป็น Array แต่ไอ้คอนฟิกเดิมที่มีบันนทัดเดียวมันดันไม่ลบทิ้ง ไม่เราก็ไปไล่แก้ที่ไอ้บรรทัดเดิมอยู่สองสามรอบ - -"

ปล. เดี๋ยวงานช้างก็อัป ubuntuclub นี่แหละ ไม่อยากเลยให้ตาย
ปล2. หลับอัปเกรดแล้วยังมีเออเรอร์โผล่ให้เห็นบ้าง หวังว่าอาการจะไม่หนักนะ DB เน่ามากแล้ว หาเวลาล้างบางไม่ได้สักที

cron run fail on ubuntuclub: done

อวสานอภิมหากาพย์ run cron ก็ คิดว่าปัญหาได้ถูกเคลียร์แล้ว (หวังว่า) ปัจจุบัจจุบันยังคงเจอหน้า error บ้าง แต่น้อยลงมาก

เหตุที่แก้ได้คือ หลังจากที่ลองรันใน beta.ubuntuclub แล้ว cron ผ่านเรียบร้อยดี ก็เลยลองรันซ้ำดูอีกสักที ปรากฏว่า มันขึ้น error ของ cron มาว่า fail ในตอนที่ feed ข้อมูลในส่อนของ aggregator module ก็เลยจับได้ละว่า ใครเป็นตัวการ แต่ก็ยังงงอยู่ว่า ตอนแรกที่ทดสอบ run โดยปิด module ทั้งหมดไปทำไมมันไม่ผ่าน

ก็เลยแก้ด้วยการ ไล่ลบข้อมูล feed ของทั้งหมดทิ้งไปก่อน แล้วลบโมดูล aggregator ทิ้ง (uninstall เลย) ก็พอรันแล้วก็พบว่า cron ผ่านเรียบร้อยดี โล่งอกเลย

cron run fail on ubuntuclub: round 3

เช้าวันเสาร์ มหากาพย์ อภิมหาสงคราม cron ยังไม่จบ โซโล่มื้อเช้าในเวลาใกล้เที่ยง กลับมากด Zelda: Spirit Track สักชั่วโมง แล้วก็ ลุกมาขัดการมหากาพย์ต่อ

ก็วันนี้ลองวิธี เอา site เดิมไปวางที่อื่น บนเซิร์ฟเวอร์เดียวกัน ก็ตะก่อนนี้นานมาแล้ว เคยตั้ง beta.ubuntuclub ไว้ เอาไว้ test web ก็เลยพอดี ใช้อันนี้ซะเลย

วิธีการก็ไม่มีไร ย้ายไฟล์ทั้งหมดไป ส่วน db ก็เปลี่ยนก้อน ข้อมูลเหมือนเดิมหมด

cron run fail on ubuntuclub: round 2

ยกที่2 ของการพยายามแก้ cron จากครั้งก่อนก็ยังคงหาวิธีไม่ได้ เลยกะว่า จะเคลียร์ table ของ module ต่างๆออกให้หมด แล้วลอง run cron ดู เพื่อจะดูว่ามันเป็นที่ตัว drupal หรือเป็นที่ module ก็เลยย้ายข้อมูลทั้งหมดมาทำที่ localhost

ก็พอวางเสร็จ ก่อนจะจัดการอะไรต่อ ก็เลยลอง run cron ซะรอบนึง โอ้วพี่น้อง มันดัน run ผ่านหว่ะ ไม่ได้ปรับแต่งอะไรเลย

ก็เลย เอาล่ะ ลองติดต่อไปที่ dreamhost ดู ก็คุยไปคุยมา มาจบที่คำตอบสุดท้าย

Pages