วันศุกร์, พฤศจิกายน 04, 2548

อึดอัด

หลังจากที่ โครงการวิจัยและพัฒนาซอพท์แวร์สำหรับโรงพยาบาลขนาดเล็ก
ได้ปล่อยตัวเวอร์ชั่นสามออกมาเรียบร้อยโรงเรียนภูเก็ตไปแล้วเมื่อเช้ามืดวันที่ 31 ตุลาคม ที่ผ่านมาและประกาศสัญญาอนุญาตให้ใช้ซอฟต์แวร์เป็นแบบ GPL ปรากฏว่าได้รับการตอบรับอย่างล้นหลาม รับดาวน์โหลดอย่างหูดับ ตับไหม้ เหอ เหอ ที่ใช้ ADSL ก็สบายกันไปแต่สำหรับผมต้องรออีกวันถึงจะดาวน์โหลดได้กะเค้า เห็นทีว่าอาจจะต้องเซพค่าโทรมือถือเอามาแชร์เป็นค่า ADSL บ้างคงจะดีไม่น้อย

แต่สิ่งที่ทำให้ผมรู้สึกอึดอัด คือ เจ้า SQL ที่ทำขึ้นมาเพื่ออัพเดทฐานข้อมูลจากเวอร์ชั่นสอง ไปเวอร์ชั่นสามนี่สิที่ทำให้หลายวันมานี้ต้องคร่ำเคร่งเพื่อค้นหาว่าทำไมฐานข้อมูลที่ใช้งานอยู่ทุกวันนี้จึงอัพเดทกะเค้าไม่ได้ซะที หลังจากที่ใช้เวลามามาก ประกอบกับสอบถามไปทางน้องๆ ทีมงานที่เขียนโปรแกรมกันอยู่ก็ทราบว่า ในเวอร์ชั่นสามนี้ น้องๆ ใช้ PostgreSQL 8.0.3 เป็นพื้นฐานกันอยู่ทำให้เวลาดัมพ์ข้อมูลออกมาจึงอยู่ในฟอร์แมตของเวอร์ชั่น 8 ซะเป็นส่วนใหญ่ และเมื่อเอามาใช้กับ PostgreSQL เวอร์ชั่น 7.4.7 (Sarge) ทำให้มีเอ๋อเหล๋อให้เห็นมากมายเหลือเกิน เช่น

  1. คำสั่ง ALTER TABLE ADD COLUMN vn VARCHAR(255) DEFAULT ""; ก็ใช้ไม่ได้นะจ๊ะ ต้องใช้แบบนี้
    บรรทัดแรก ALTER TABLE ADD COLUMN vn VARCHAR(255);
    บรรทัดที่สอง ALTER TABLE ALTER COLUMN vn SET DEFAULT "";
  2. คำสั่ง ALTER INDEX ก็ใช้ไม่ได้ต้องคอมเม้นท์ไว้จึงจะไม่มีเอ๋อเหล๋อ
  3. ที่น่าปวดหัวยิ่งกว่านั้นคือว่าตามข้อ 1 ข้างบนเนี่ยบางบรรทัดก็ทำตามได้ถูกต้องแต่บางบรรทัดก็ผ่านไปเฉยๆ เหมือนกับว่าถูกคอมเม้นท์ไว้ซะอย่างนั้น ทำให้ต้องมาคอยเช็คดาต้าเบสทุกตาราง ทุกคอลัมภ์ว่าครบหรือปล่าว สามร้อยกว่าตารางครับ

จนแน่ใจว่า SQL ที่เอามาโมดฟายใหม่นั้นทำครบทุกบรรทัดแล้วก็ลองมาเรียกจากตัว Application ดู ฮื่อๆ ทำให้เข่าอ่อนเลย ตัว Setup นั้นเรียกใช้ได้ไม่มีปัญหา แต่ตัว Class Main นั้นเรียกด้วย user ธรรมดาไม่ได้ เรียกได้เฉพาะ user admin แต่ก็ไม่ค่อยสมบูรณ์คือเจ้าตัว tab ต่างๆ ไม่ปรากฏให้เห็น ก็เลยลองโทรไปถามทั้ง henbe (Chief Programmer ในเวอร์ชั่นสาม) พร้อมกับส่ง Exception ไปให้ดู + schema ของฐานข้อมูลที่ได้ทำการอัพเดทไปแล้ว + SQL ที่โมดิฟาย เพื่อให้ตรวจสอบอีกทีนึงว่า ในดาต้าเบสนั้นน่ะ Table, Column ครบจริงๆ หรือปล่าว (ทำมาหลายวัน ตาอาจลายมองเห็นว่าครบก็ได้) เท่านั้นยังไม่พอยังแอบโทรไปถามโต้งอีกว่าเกิดจากอะไรได้มั่ง ก็ได้คำตอบที่ค่อนข้างทำให้เครียดเลยว่า ตัว jar file ทั้งหลายน่ะถูกเขียนขึ้นจากการทดสอบบน PostgreSQL 8.0.3 อาจจะมีผลได้นะเพ่

ทางออกที่ดีที่สุดคือเปลี่ยนไปใช้ PostgreSQL 8.0.x ซะ ปัญหาทั้งหลายก็จะหายไป อันนี้เห็นด้วยว่ะ แต่หนักใจมากเนื่องจากที่ทำงานใช้ sarge ก็ postgres มันเป็น 7.4.7 ซึ่งก็ทำงานอย่างซ์่อสัตย์มาตลอด (ไม่มีความผิดอะไร ) จู่ๆ จะให้ทิ่งไปด้วยเหตุผลที่ว่า เธอร์ดีเกินไป (สำนวนเด็กแนวที่เห็นตาม MV ทั่วไป) ก็ทำไม่ได้ ถ้าทำก็คือ อัพทั้งดิสโทรขึ้นไปเป็น etch เลยเหยอ อันนี้ยิ่งไม่อยากทำในงานที่ต้องใช้ความเสถียรสูง เกิดดาต้าเบสหรือเครื่องเซอร์เวอร์เป็นอะไรไป กรูมิไปเกิดใหม่เลยเหรอฟะ หรือจะเอาซอร์สของ Postgresql 8.0.x มาคอมไพล์เองบน sarge ซึ่งก็เป็นทางออกที่มีเหลืออีกทาง ลง readline , zlib อีกสองแพกเกจก็คอมไพล์ได้แล้วว่ะ เออรู้สึกว่าง่ายหน่อย แต่ก็หนักใจเนื่องจาก dependency ของระบบผูกติดกันอย่างแน่นหนาเหลือเกิน บางโปรแกรมอาจเรียกไม่ได้ ยอมมั๊ย

ทางออกในตอนนี้คือรอ ๆ รอมันไปเรื่อยๆ เหตุผลที่ต้องรอก็เพราะว่าเครื่องของหน่วยบริการปฐมภูมิ (Primary Care Unit PCU) ก็ยังไม่มาถึงซะที ทั้งๆ ที่น้องเค้าก็มาตามจิกอยู่ทุกวันว่าเมื่อไหร่จะได้ใช้โปรแกรมซะที (ไป Present ไว้ซะเยอะ แล้วเป็นงัยล่ะ) ตามเครื่องคอมให้หน่อยนะ หนูต้องบันทึกข้อมูลมากนะ อีกอย่างที่ต้องรอคือคำตอบจาก henbe ว่า schema ที่ส่งไปให้ดูน่ะครบหรือปล่าว ถ้าครบก็เป็นเรื่องของ henbe ที่ต้องไปตามดูบักต่อ แต่ถ้ามันไม่ครบก็ต้องตาแฉะหาวิธีอัพเดทให้ได้ คิดแล้วเหนื่อย ไอ้เช็ค SQL ไม่ค่อยยากใช้ editor ช่วยก็ได้แต่เช็คดาต้าเบสนี่ดิ มันเป็นอะไรที่ต้องใช้สมาธิสูงมาก แล้วต้องใช้กำลังใจมากด้วย (อิ อิ) เอ้าก็รอกันไป วัดกว่าจะสร้างเสร็จก็เป็นปี หมู่บ้านที่ผมอยู่ วิหารยังสร้างมาตั้งหลายปีแล้วยังไม่เสร็จซะที ช่วงนี้ตอนเย็นเลยหาเรื่องไปเตะชาวบ้านเค้าไปทั่ว เตะเค้าแล้วก็วิ่งหนีซะ (เล่นบอล) ค่อยหายอึดอัดหน่อย ก็ได้แต่หวังว่าคงไม่ต้องเปลี่ยนไปใช้ PostgreSQL 8.0.x นะ (ขอให้เป็นคำตอบสุดท้ายก็แล้วกัน)

Powered for by Blogger Templates free hit counter code
Copyright ? 2008-2009 Uthai Lueadnakrop. All Rights reserved