ติดตั้งใช้งานและจัดการสคีมาและเครื่องมือเชื่อมต่อของ Data Connect

บริการ Firebase Data Connect มีองค์ประกอบหลัก 3 อย่าง ได้แก่

  • ฐานข้อมูล PostgreSQL ที่สำคัญซึ่งมีสคีมา SQL ของตนเอง
  • สคีมาแอปพลิเคชัน Data Connect (ตามประกาศในไฟล์ .gql ของคุณ)
  • เครื่องมือเชื่อมต่อจำนวนหนึ่ง (ประกาศในไฟล์ .gql ของคุณ)

สคีมา SQL คือแหล่งข้อมูลจริง สคีมา Data Connect คือวิธีที่เครื่องมือเชื่อมต่อจะดูข้อมูลนั้น และเครื่องมือเชื่อมต่อจะประกาศ API ที่ลูกค้าสามารถใช้เพื่อเข้าถึงข้อมูลนั้นได้

เมื่อทำให้บริการ Data Connect ใช้งานได้ด้วย CLI คุณจะทำสิ่งต่อไปนี้ได้ ย้ายข้อมูลสคีมา SQL จากนั้นอัปเดตสคีมา Data Connect จากนั้น อัปเดตเครื่องมือเชื่อมต่อแต่ละตัว

แนวคิดสำคัญเกี่ยวกับการติดตั้งใช้งาน

สิ่งสำคัญที่ควรทราบเพื่อทําความเข้าใจการทําให้ใช้งานได้อย่างเต็มรูปแบบคือแนวคิดสําคัญเกี่ยวกับสคีมาและตัวเชื่อมต่อ

การทำให้สคีมาใช้งานได้

การติดตั้งใช้งานสคีมา Data Connect จะส่งผลต่อสคีมา SQL สำหรับ ฐานข้อมูล Cloud SQL Data Connect ช่วยคุณย้ายข้อมูลสคีมา ระหว่างการทำให้ใช้งานได้ ไม่ว่าคุณจะใช้ฐานข้อมูลใหม่หรือ ปรับฐานข้อมูลที่มีอยู่โดยไม่ทำลาย

การย้ายข้อมูลสคีมา Data Connect มีโหมดการตรวจสอบสคีมา 2 โหมด ได้แก่ เข้มงวดและเข้ากันได้

  • การตรวจสอบความถูกต้องในโหมดเข้มงวดต้องให้สคีมาฐานข้อมูลตรงกันทุกประการกับ ก่อนที่จะอัปเดตสคีมาของแอปพลิเคชันได้ ช่วง ตารางหรือคอลัมน์ที่ไม่ได้ใช้ในสคีมา Data Connect จะถูกลบออกจากฐานข้อมูล

  • การตรวจสอบโหมดที่เข้ากันได้กำหนดให้สคีมาฐานข้อมูลต้องเข้ากันได้กับสคีมาแอปพลิเคชันก่อนจึงจะอัปเดตสคีมาแอปพลิเคชันได้ การเปลี่ยนแปลงเพิ่มเติมที่ลบสคีมา ตาราง หรือคอลัมน์นั้นไม่บังคับ

    เข้ากันได้หมายความว่าการย้ายข้อมูลสคีมาจะส่งผลต่อตารางและคอลัมน์ที่อ้างอิงในสคีมาแอปพลิเคชันเท่านั้น องค์ประกอบในฐานข้อมูลที่ไม่ใช่ จะไม่มีการแก้ไขสคีมาของแอปพลิเคชัน ดังนั้นหลังจาก การทำให้ใช้งานได้ ฐานข้อมูลอาจมี

    • สคีมา
    • ตาราง
    • คอลัมน์

การติดตั้งใช้งานเครื่องมือเชื่อมต่อ

การค้นหาและการเปลี่ยนแปลง Data Connect รายการไม่เป็นเช่นนั้น ที่ส่งโดยรหัสไคลเอ็นต์และดําเนินการบนเซิร์ฟเวอร์ แต่เมื่อทําการติดตั้งใช้งาน ระบบจะจัดเก็บการดำเนินการ Data Connect เหล่านี้ไว้ในเซิร์ฟเวอร์ เช่น Cloud Functions ซึ่งหมายความว่าการทำให้ใช้งานได้อาจทำให้ผู้ใช้ที่มีอยู่เสียหาย

ทำตามเวิร์กโฟลว์การติดตั้งใช้งาน

คุณทำงานในโปรเจ็กต์ Data Connect ได้ทั้งในโปรเจ็กต์ภายใน และในคอนโซล Firebase

ขั้นตอนการทำให้ใช้งานได้ที่แนะนำมีดังนี้

  1. ข้อมูลสคีมาและเครื่องมือเชื่อมต่อที่ทำให้ใช้งานได้ในปัจจุบันกับ firebase dataconnect:services:list
  2. จัดการการอัปเดตสคีมา
    1. ตรวจสอบความแตกต่างของสคีมา SQL ระหว่างฐานข้อมูล Cloud SQL กับสคีมา Data Connect ในพื้นที่ด้วย firebase dataconnect:sql:diff
    2. หากจำเป็น ให้ย้ายข้อมูลสคีมา SQL ด้วย dataconnect:sql:migrate
  3. ดําเนินการสคีมาและการเชื่อมต่อกับแพลตฟอร์มต่างๆ โดยเรียกใช้ firebase deploy ไม่ว่าจะสําหรับสคีมาเพียงอย่างเดียว ตัวเชื่อมต่อเพียงอย่างเดียว หรือทั้ง 2 อย่าง

ติดตั้งใช้งานและจัดการทรัพยากร Data Connect

คุณควรยืนยันทรัพยากรเวอร์ชันที่ใช้งานจริงก่อนทำการทำให้ใช้งานได้จริง

firebase dataconnect:services:list

เมื่อทำงานในไดเรกทอรีโปรเจ็กต์ในเครื่อง โดยทั่วไปแล้วคุณจะใช้เมธอด คำสั่ง firebase deploy เพื่อทำให้สคีมาและเครื่องมือเชื่อมต่อใช้งานได้จริง ด้วยความคิดเห็นแบบอินเทอร์แอกทีฟ

เมื่อใช้คําสั่ง deploy แฟล็ก --only dataconnect จะช่วยให้คุณแยก การทำให้ใช้งานได้ Data Connect รายการจากผลิตภัณฑ์อื่นๆ ในโปรเจ็กต์ของคุณ

การติดตั้งใช้งานตามปกติ

firebase deploy --only dataconnect

ในการทำให้ใช้งานได้ตามปกตินี้ CLI ของ Firebase จะพยายามทำให้สคีมาใช้งานได้ และเครื่องมือเชื่อมต่อ

การดำเนินการนี้จะตรวจสอบว่าสคีมาใหม่ไม่ทำให้เครื่องมือเชื่อมต่อที่มีอยู่ใช้งานไม่ได้ ทำตามแนวทางปฏิบัติแนะนำเมื่อทำการเปลี่ยนแปลงที่ทำให้เกิดข้อขัดข้อง

และยังยืนยันว่ามีการย้ายข้อมูลสคีมา SQL แล้วก่อนที่จะอัปเดตคำสั่ง สคีมา Data Connect แต่หากไม่เป็นเช่นนั้น จะมีข้อความแจ้งให้คุณโดยอัตโนมัติเมื่อ ขั้นตอนที่จำเป็นในการย้ายข้อมูลสคีมา

การติดตั้งใช้งาน --force Flag

firebase deploy --only dataconnect --force

หากไม่มีข้อกังวลใดๆ เกี่ยวกับเครื่องมือเชื่อมต่อหรือการตรวจสอบสคีมา SQL คุณสามารถ ให้เรียกใช้คำสั่งอีกครั้งด้วย --force เพื่อละเว้นคำสั่งดังกล่าว

การดำเนินการ --force ยังคงตรวจสอบว่าสคีมา SQL ตรงกับสคีมา Data Connect หรือไม่ เตือนถึงความเข้ากันไม่ได้ และแสดงข้อความแจ้ง

ทำให้ทรัพยากรที่เลือกใช้งานได้

หากต้องการติดตั้งใช้งานด้วยการควบคุมที่ละเอียดยิ่งขึ้น ให้ใช้แฟล็ก --only ที่มี อาร์กิวเมนต์ serviceId หากต้องการปรับใช้เฉพาะการเปลี่ยนแปลงสคีมาสำหรับบริการหนึ่งๆ ให้ทำดังนี้

firebase deploy --only dataconnect:serviceId:schema

นอกจากนี้คุณยังปรับใช้ทรัพยากรทั้งหมดสำหรับเครื่องมือเชื่อมต่อและบริการที่ระบุได้

firebase deploy --only dataconnect:serviceId:connectorId

สุดท้าย คุณสามารถติดตั้งใช้งานสคีมาและตัวเชื่อมต่อทั้งหมดสําหรับบริการเดียว

firebase deploy --only dataconnect:serviceId

เปลี่ยนกลับการทำให้ใช้งานได้

หากต้องการดำเนินการย้อนกลับด้วยตนเอง โปรดดูโค้ดเวอร์ชันก่อนหน้าและ ทำให้ใช้งานได้ หากการทําให้ใช้งานได้ครั้งแรกมีการเปลี่ยนแปลงที่ก่อให้เกิดความเสียหาย คุณอาจกู้คืนข้อมูลที่ลบไปแล้วไม่ได้ทั้งหมด

ย้ายสคีมาฐานข้อมูล

หากคุณกำลังสร้างต้นแบบอย่างรวดเร็ว กำลังทดสอบสคีมา และรู้จักสคีมาของคุณ การเปลี่ยนแปลงนั้นทำลายได้ คุณสามารถวางแผนใช้เครื่องมือ Data Connect เพื่อ ตรวจสอบการเปลี่ยนแปลงและควบคุมดูแลวิธีการอัปเดต

แยกความแตกต่างของสคีมา SQL

คุณยืนยันการเปลี่ยนแปลงได้ดังนี้

firebase dataconnect:sql:diff

คุณสามารถส่งรายการบริการที่คั่นด้วยคอมมา

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

ใช้การเปลี่ยนแปลง

เมื่อพอใจและพร้อมที่จะทําให้การเปลี่ยนแปลงสําคัญกับอินสแตนซ์ Cloud SQL ของสคีมา ให้ใช้คําสั่ง firebase dataconnect:sql:migrate คุณจะเห็น ให้อนุมัติการเปลี่ยนแปลง

firebase dataconnect:sql:migrate [serviceId]

ในสภาพแวดล้อมแบบอินเทอร์แอกทีฟ คำสั่งการย้ายข้อมูล SQL และคำสั่งการดำเนินการจะ แสดงอยู่

การย้ายข้อมูลในโหมดเข้มงวดหรือที่เข้ากันได้

ในโปรเจ็กต์ใหม่ โหมดการตรวจสอบสคีมาเริ่มต้นจะมีผล ลักษณะการทำงานของคำสั่ง migrate คือการใช้สคีมาฐานข้อมูลทั้งหมด การเปลี่ยนแปลงที่จำเป็นในสคีมาของแอปพลิเคชันของคุณ แล้วขอให้คุณอนุมัติ การดำเนินการที่ไม่บังคับซึ่งจะทิ้งสคีมา ตาราง หรือคอลัมน์เพื่อบังคับใช้ฐานข้อมูล ให้ตรงกับสคีมาของแอปพลิเคชันทุกประการ

คุณสามารถปรับลักษณะการทำงานนี้ได้โดยแก้ไขไฟล์ dataconnect.yaml ยกเลิกการทำหมายเหตุคีย์ schemaValidation และประกาศ COMPATIBLE เพื่อให้มีเพียง ระบบจะนำการเปลี่ยนแปลงที่จำเป็นไปใช้ในการย้ายข้อมูล

schemaValidation: "COMPATIBLE"

หรือตั้งค่าลักษณะการทำงานเป็น STRICT เพื่อใช้การเปลี่ยนแปลงสคีมาทั้งหมดและ สคีมาของฐานข้อมูลถูกบังคับให้จับคู่กับสคีมาของแอปพลิเคชัน

schemaValidation: "STRICT"

ดูข้อมูลอ้างอิง CLI ของ Data Connect สำหรับข้อมูลเพิ่มเติม

แนวทางปฏิบัติแนะนำสำหรับการจัดการสคีมาและคอนเน็กเตอร์

Firebase ขอแนะนำแนวทางปฏิบัติบางอย่างที่ควรปฏิบัติตามใน Data Connect โปรเจ็กต์

ลดการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ

  • Firebase ขอแนะนำให้เก็บไฟล์สคีมาและตัวเชื่อมต่อ Data Connect ไว้ในระบบควบคุมแหล่งที่มา
  • หลีกเลี่ยงการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ หากเป็นไปได้ ตัวอย่างที่พบบ่อยของการทำลาย การเปลี่ยนแปลงประกอบด้วย
    • การนำช่องออกจากสคีมา
    • การทําให้ช่องที่อนุญาตค่า Null ในสคีมาไม่อนุญาตค่า Null (เช่น Int -> Int!)
    • การเปลี่ยนชื่อช่องในสคีมา
  • หากจำเป็นต้องนำช่องออกจากสคีมา ให้พิจารณาแยกช่องออกเป็น 2-3 ช่องเพื่อลดผลกระทบ ดังนี้
    • ก่อนอื่น ให้นําการอ้างอิงถึงช่องในเครื่องมือเชื่อมต่อออก แล้วทําการเปลี่ยนแปลง
    • ถัดไป ให้อัปเดตแอปเพื่อใช้ SDK ที่สร้างขึ้นใหม่
    • สุดท้าย นำช่องในไฟล์สคีมา .gql ออก จากนั้นย้ายข้อมูล SQL มาใช้อีกครั้ง

ใช้โหมดเข้มงวดเมื่อทำงานกับฐานข้อมูลใหม่

หากคุณใช้ Data Connect กับฐานข้อมูลใหม่และกำลังพัฒนาสคีมาแอปพลิเคชันอยู่ และต้องการให้สคีมาฐานข้อมูลสอดคล้องกับสคีมาแอปพลิเคชันทุกประการ ให้ระบุ schemaValidation: "STRICT" ใน dataconnect.yaml

ซึ่งจะทำให้การเปลี่ยนแปลงที่ไม่บังคับมีผลด้วย

ใช้โหมดที่เข้ากันได้เมื่อคุณมีข้อมูลเวอร์ชันที่ใช้งานจริงในฐานข้อมูล

หากคุณทำการเปลี่ยนแปลงในฐานข้อมูลที่มีข้อมูลที่ใช้งานจริง ขอแนะนำให้คุณดำเนินการย้ายข้อมูลสคีมาในโหมดที่ใช้งานร่วมกันได้ ข้อมูลที่มีอยู่จะไม่หายไป คุณระบุ schemaValidation: "COMPATIBLE" ใน dataconnect.yaml ได้

ในโหมดที่เข้ากันได้ จะมีเฉพาะการเปลี่ยนแปลงที่จำเป็นสำหรับการย้ายข้อมูลสคีมาเท่านั้นที่มีผลกับฐานข้อมูล

  • ระบบจะพิจารณา DROP SCHEMA, DROP TABLE และ DROP COLUMN หรือไม่ก็ได้ และจะไม่ถูกสร้างสำหรับแผนของคุณ แม้ว่าจะเป็นสคีมาฐานข้อมูลก็ตาม มีสคีมา ตาราง หรือคอลัมน์ที่ไม่ได้ระบุไว้ในสคีมาของแอปพลิเคชัน
  • หากตารางฐานข้อมูลของคุณมีคอลัมน์ที่ไม่เป็นค่าว่างซึ่งไม่รวมอยู่ใน สคีมาของแอปพลิเคชัน ระบบจะนำข้อจำกัด NOT NULL ออกเพื่อให้ข้อมูล ไปยังตารางด้วยเครื่องมือเชื่อมต่อที่คุณกำหนด

ขั้นตอนถัดไปคือ