หลังจากทีเขียน Code กับ Product ที่ใช้กับตัว DB2 มานาน คราวนี้มีโอกาสได้ย้ายบ้าน จริงไม่เชิงย้ายหรอกครับ แค่เอา Product ตัวเดิม จากที่มันใช้ได้กับ DB2 ไปใช้กับ MS SQL Server ให้ได้ครับ
พอให้น้องที่ทำงานมาลองทำ POC ดู อ้าว Error Table มันมี Column ที่ชื่อว่า Index
- DB2 - ยอมได้
- MS SQL Server - ไม่ยอมมมมมม เป็น Reserve Word
แล้วทางแก้หละ จะทำ view ครอบหลอกก็ไม่ได้และ มีทั้ง
- CRUD
- และ Index เป็น Reserve Word ของ MS SQL Server
สิ่งที่ผมทำ มีดังนี้ครับ
- เพิ่ม Column ใหม่ไป เช่น FUNDINDEX และ Defaut Data ให้เหมือนกับ Column Index อันเดิม
- แก้ที่ App สนใจที่ฝั่ง Master Data ก่อน
- Site ที่เป็น DB2 - Insert ทั้ง 2 Column ครับ ทั้ง INDEX และ FUNDINDEX เลย (มันต้องมีช่วงการเปลี่ยนผ่านที่ Site ลูกค้านะครับ) อาจจะทำ Trigger ให้มาใส่เพิ่ม ให้กับ Column INDEX เดิม
- Site ที่เป็น MS SQL Server - Insert เฉพาะ Column ที่ทำใหม่ คือ FUNDINDEX - ที่นี่ค่อยมานั่งไล่แก้ตัว Process และ Report ทั้งหลายครับใน Dev Enviroment นะ ให้ Drop Column เดิมทิ้งไปครับ ตัว (Column Index นี้เอง)
ที่ผมทำแบบนี้ เพราะ ต้องการใช้ตัว Code ของที่ใช้กับ Database DB2 และ MS SQL Server เป็น Code ชุดเดียวกันครับ
- เมื่อ Test อะไรจนครบ Flow แล้ว ส่ง App ไป Production ครับ อย่าเพิ่งส่ง Script ที่ Drop Column ไปนะครับ เอ้าทำไมหละ งานที่ผมดูแลมันมี App ที่เป็น Client ด้วย ต้องดูถึงเวลาที่ลูกค้าคาดว่าจะ Replace โปรแกรมใหม่ทันด้วยนะ
- ถ้าคิดว่ามีการ Replace Program ครบเรียบร้อยแล้ว ก็ส่ง Script DROP ไปได้เลยครับ และก็อย่าลืมปรับ App ที่เป็นของ Database DB2 ไม่ให้สนใจ Column INDEX อันเก่าด้วยนะครับ
- อ๋อ และก็อย่าลืมแจ้งลูกค้าด้วยครับ บางที่ In-house ของลูกค้ามีทำ App มาดึงข้อมูลจาก DB เราไปตรงๆ นะครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.