Skip to content

Branch patterns#

ความสัมพันธ์ระหว่าง n8n instance กับ Git branch สามารถปรับเปลี่ยนได้ตามที่ต้องการ คุณสามารถตั้งค่าหลายแบบได้ตามความเหมาะสมของงาน

คำแนะนำ: อย่า push และ pull ไปยัง n8n instance เดียวกัน

คุณสามารถ push งานจาก instance หนึ่งไปยัง branch และ pull มายัง instance เดียวกันได้ แต่ n8n ไม่แนะนำวิธีนี้ เพื่อลดความเสี่ยงของ merge conflicts และการเขียนทับงาน ควรพยายามสร้างกระบวนการที่งานไหลไปในทิศทางเดียว: ไม่ว่าจะไปยัง Git หรือจาก Git แต่ไม่ใช่ทั้งสองทาง

Multiple instances, multiple branches#

รูปแบบนี้คือการมี n8n instance หลายอัน โดยแต่ละอันเชื่อมกับ branch ของตัวเอง

คุณสามารถใช้ pattern นี้กับ environments ได้ เช่น สร้าง n8n instance สองอัน คือ development กับ production แล้วเชื่อมแต่ละอันกับ branch ของตัวเอง จากนั้น push งานจาก development instance ไปที่ branch ของมัน แล้วสร้าง pull request เพื่อย้ายงานไป production branch แล้วค่อย pull เข้า production instance

ข้อดีของรูปแบบนี้คือ:

  • มีชั้นความปลอดภัยเพิ่มเติมเพื่อป้องกันการเปลี่ยนแปลงเข้าสู่ production environment ของคุณโดยไม่ได้ตั้งใจ คุณต้องทำ pull request ใน GitHub เพื่อคัดลอกงานระหว่าง environments
  • รองรับมากกว่าสอง instances

ข้อเสียคือ มีขั้นตอนที่ต้องทำด้วยตนเองมากขึ้นในการคัดลอกงานระหว่าง environments

Diagram

Multiple instances, one branch#

ใช้ pattern นี้ถ้าคุณอยากให้ workflow, tag, variable เหมือนกันทุกที่ แต่ใช้งานใน n8n instance หลายอัน

เหมาะกับการทำ environments เช่น สร้าง n8n instance สองอัน development กับ production แล้วเชื่อมทั้งสองอันกับ branch เดียวกัน จากนั้น push งานจาก development แล้ว pull เข้า production

pattern นี้ยังเหมาะกับการทดสอบ n8n เวอร์ชันใหม่ เช่น สร้าง instance ใหม่ที่เป็นเวอร์ชันใหม่ เชื่อมกับ Git branch เดิม แล้วทดสอบได้เลย ในขณะที่ production instance ยังใช้เวอร์ชันเก่าอยู่จนกว่าจะมั่นใจ

ข้อดีของรูปแบบนี้คือ งานจะพร้อมใช้งานสำหรับ environment อื่น ๆ ทันทีเมื่อคุณ push จาก instance หนึ่ง

ข้อเสียคือ:

  • หากคุณ push โดยไม่ได้ตั้งใจ มีความเสี่ยงที่งานนั้นจะเข้าไปอยู่ใน production instance ของคุณ หากคุณ ใช้ GitHub Action เพื่อทำให้การ pull เป็นอัตโนมัติ ไปยัง production คุณต้องใช้รูปแบบ multi-instance, multi-branch หรือระมัดระวังไม่ push งานที่คุณไม่ต้องการให้เข้าสู่ production
  • การ push และ pull ไปยัง instance เดียวกันอาจทำให้ข้อมูลสูญหายได้ เนื่องจากการเปลี่ยนแปลงจะถูกเขียนทับเมื่อดำเนินการเหล่านี้ คุณควรตั้งค่ากระบวนการเพื่อให้แน่ใจว่าเนื้อหาไหลไปในทิศทางเดียว

Diagram

One instance, multiple branches#

เจ้าของ instance สามารถเปลี่ยน branch ที่เชื่อมกับ instance ได้ setup แบบนี้มักจะเป็น Multiple instances, multiple branches แต่ใช้ instance เดียวสลับ branch ไปมา

เหมาะกับการ review งาน เช่น แต่ละ user ทำงานบน instance ของตัวเองแล้ว push ไป branch ของตัวเอง reviewer ใช้ review instance แล้วสลับ branch เพื่อดูงานของแต่ละคน

No cleanup

n8n จะไม่ลบข้อมูลเดิมใน instance ตอนเปลี่ยน branch การสลับ branch แบบนี้จะทำให้ workflow จากแต่ละ branch ไปอยู่รวมกันใน instance ของคุณ

Diagram

One instance, one branch#

นี่คือ pattern ที่ง่ายที่สุด

Diagram