บริการ 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
ขั้นตอนการทำให้ใช้งานได้ที่แนะนำมีดังนี้
- ข้อมูลสคีมาและเครื่องมือเชื่อมต่อที่ทำให้ใช้งานได้ในปัจจุบันกับ
firebase dataconnect:services:list
- จัดการการอัปเดตสคีมา
- ตรวจสอบความแตกต่างของสคีมา SQL ระหว่างฐานข้อมูล Cloud SQL กับสคีมา Data Connect ในพื้นที่ด้วย
firebase dataconnect:sql:diff
- หากจำเป็น ให้ย้ายข้อมูลสคีมา SQL ด้วย
dataconnect:sql:migrate
- ตรวจสอบความแตกต่างของสคีมา SQL ระหว่างฐานข้อมูล Cloud SQL กับสคีมา Data Connect ในพื้นที่ด้วย
- ดําเนินการสคีมาและการเชื่อมต่อกับแพลตฟอร์มต่างๆ โดยเรียกใช้
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
ออกเพื่อให้ข้อมูล ไปยังตารางด้วยเครื่องมือเชื่อมต่อที่คุณกำหนด
ขั้นตอนถัดไปคือ
- การนำส่งและการจัดการโค้ดไคลเอ็นต์ที่คุณพัฒนาด้วย SDK ที่สร้างขึ้นจะอธิบายไว้ในคู่มือสำหรับ Android, iOS, เว็บ และ Flutter
- ดูข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือสำหรับการติดตั้งใช้งานได้ที่ข้อมูลอ้างอิง CLI ของ Data Connect และข้อมูลอ้างอิงไฟล์การกําหนดค่าของ Data Connect