ข้ามไปยังเนื้อหา

เก็บข้อมูลของแอปไว้ใน Railway Postgres

สรุปสั้น ๆตัวเชื่อมต่อ Railway ทำงานได้ 2 อย่างแยกกัน ถ้าใส่โทเค็น API ID โปรเจกต์ และ ID สภาพแวดล้อม คุณจะปรับใช้แอปไปยัง Railway ได้ ถ้าใส่สตริงการเชื่อมต่อสาธารณะของ Railway Postgres ด้วย MonstarX จะย้ายตารางและแถวของแอปไปที่นั่น ตรวจสอบข้อมูล และเขียนแอปใหม่ให้ใช้ฐานข้อมูลนั้น ส่วนปุ่มย้ายกลับจะนำข้อมูลกลับมาที่เดิม

Railway คือแพลตฟอร์มคลาวด์สำหรับรันแอปและฐานข้อมูล ตัวเชื่อมต่อ Railway ของ MonstarX เชื่อมแอปหนึ่งของคุณเข้ากับโปรเจกต์ Railway เพื่อทำงานอย่างใดอย่างหนึ่งหรือทั้ง 2 อย่าง

  • เก็บข้อมูลของแอปไว้ใน Railway Postgres คือฐานข้อมูล Postgres ของคุณเองใน Railway แทนฐานข้อมูลของ MonstarX หน้านี้อธิบายเรื่องนี้
  • ปรับใช้แอปไปยัง Railway คือรันแอปบนโปรเจกต์ Railway ของคุณจากรีโพซิทอรี GitHub ของแอป ดู เผยแพร่ไปยังโฮสต์อื่น

ทั้งสองอย่างแยกจากกัน ข้อมูลอยู่ใน Railway Postgres ได้ขณะที่แอปเผยแพร่บน MonstarX และกลับกันก็ได้เช่นกัน

เลือกใช้เมื่อคุณรันระบบต่าง ๆ บน Railway อยู่แล้ว ต้องการให้ข้อมูลของแอปอยู่ในบัญชีของคุณเอง หรือต้องการเข้าถึงข้อมูลด้วยเครื่องมือฐานข้อมูลของคุณเอง นอกนั้นฐานข้อมูลของ MonstarX ใช้ได้เลยโดยไม่ต้องตั้งค่า ดู ฐานข้อมูลของแอป

แอปเก็บข้อมูลไว้ใน ที่เดียวในแต่ละครั้ง การไปใช้ Railway Postgres คือการย้าย ไม่ใช่การคัดลอก

ใน Railway

  1. เปิด (หรือสร้าง) โปรเจกต์ Railway แล้วเลือกสภาพแวดล้อมที่จะใช้ ซึ่งมักเป็น production
  2. เพิ่มบริการฐานข้อมูล Postgres ในโปรเจกต์ แล้วเปิด public networking เพื่อให้ MonstarX เข้าถึงได้
  3. สร้าง โทเค็น API ของบัญชีหรือเวิร์กสเปซ ที่ Account Settings → Tokens ของ Railway โทเค็นของโปรเจกต์สร้างบริการไม่ได้ จึงใช้ไม่ได้

ใน MonstarX ข้อมูลของแอปต้องอยู่ในฐานข้อมูลของ MonstarX ถ้าอยู่ใน Supabase หรือ Firestore ให้ย้ายกลับมาก่อน

  1. เปิดโปรเจกต์แล้วคลิก แบ็กเอนด์ ในแถบด้านบน จากนั้นคลิก คลาวด์

  2. ที่ ตัวเชื่อมต่อ คลิก เชื่อมต่อ ข้าง Railway หรือเลือก Railway (Postgres) ใน ที่แอปนี้เก็บข้อมูลไว้

  3. กรอกแบบฟอร์ม

    • โทเค็น API ของบัญชีหรือเวิร์กสเปซ โทเค็นจาก Railway
    • ID โปรเจกต์ ดูได้ในการตั้งค่าโปรเจกต์ Railway
    • ID สภาพแวดล้อม ดูได้ในการตั้งค่าเดียวกัน
    • สตริงการเชื่อมต่อสาธารณะของ Postgres (ไม่บังคับ) คือ DATABASE_PUBLIC_URL ของบริการ Postgres ช่องนี้คือสิ่งที่เริ่มการย้ายข้อมูล ถ้าต้องการแค่ปรับใช้ไปยัง Railway ให้เว้นว่างไว้
  4. คลิก เชื่อมต่อ Railway MonstarX จะตรวจสอบว่าสภาพแวดล้อมอยู่ในโปรเจกต์นั้น และสร้างตารางในฐานข้อมูลได้

  5. การ์ด ย้ายข้อมูลของแอปนี้ไปที่ Railway Postgres จะแสดงในแชท พร้อมจำนวนตารางและแถวที่พบ คลิก ย้ายแอปของฉัน

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

จากนั้นการ์ด ฐานข้อมูล ใน แบ็กเอนด์คลาวด์ จะแสดงว่า บน Railway

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

ได้ คลิก ย้ายกลับ บนการ์ด ฐานข้อมูล ใน แบ็กเอนด์คลาวด์ แล้วยืนยัน MonstarX จะคัดลอกทุกอย่างกลับมาที่ฐานข้อมูลของตัวเองและเขียนโค้ดใหม่อีกครั้ง ฐานข้อมูลใน Railway จะยังอยู่เหมือนเดิม

  • โทเค็นอยู่กับ MonstarX โทเค็น API ID โปรเจกต์ และ ID สภาพแวดล้อมเก็บแบบเข้ารหัส และ MonstarX ใช้เฉพาะเพื่อจัดการ Railway เท่านั้น ไม่มีการส่งเข้าไปในแอป
  • สตริงการเชื่อมต่อไปอยู่บนเซิร์ฟเวอร์ของแอปเท่านั้น และหลังจากสลับไปใช้แล้วเท่านั้น ไม่ไปถึงเบราว์เซอร์เลย
  • ยกเลิกการเชื่อมต่อ Railway หรือเปลี่ยนฐานข้อมูลไม่ได้ระหว่างที่แอปใช้อยู่ ให้ย้ายกลับก่อน
  • การยกเลิกการเผยแพร่จาก Railway จะลบเฉพาะบริการที่ MonstarX สร้างขึ้น ไม่ลบฐานข้อมูล Postgres ของคุณ
  • แอปที่นำเข้า ใช้โค้ดฐานข้อมูลของตัวเอง MonstarX ส่งสตริงการเชื่อมต่อให้ในชื่อ RAILWAY_DATABASE_URL แต่ไม่ย้ายข้อมูลให้
  • ที่อยู่ส่วนตัวของ Railway ใช้ไม่ได้ MonstarX ต้องใช้สตริงการเชื่อมต่อสาธารณะเพื่อเข้าถึงฐานข้อมูล
ต้องปรับใช้แอปไปยัง Railway ไหมถึงจะใช้ Railway Postgres ได้

ไม่ต้อง ทั้งสองอย่างแยกจากกัน แอปเผยแพร่บน MonstarX ต่อไปได้ขณะที่ข้อมูลอยู่ใน Railway Postgres

ต้องวางสตริงการเชื่อมต่อตัวไหน

DATABASE_PUBLIC_URL ของบริการ Postgres หลังจากเปิด public networking แล้ว MonstarX เข้าถึงที่อยู่ในเครือข่ายส่วนตัวไม่ได้

ทำไมโทเค็นของฉันถูกปฏิเสธ

โทเค็นโปรเจกต์ของ Railway สร้างบริการไม่ได้ ให้สร้างโทเค็นของ บัญชีหรือเวิร์กสเปซ ที่ Account Settings → Tokens ของ Railway แทน

เปลี่ยนจาก Supabase ไป Railway ได้ไหม

ได้ โดยย้าย 2 ครั้ง ใช้ ย้ายกลับ เพื่อนำข้อมูลกลับมาที่ฐานข้อมูลของ MonstarX ก่อน แล้วจึงเชื่อมต่อ Railway Postgres

ผู้ใช้ต้องสมัครใช้งานใหม่ไหม

ไม่ต้อง บัญชีผู้ใช้เป็นแถวในฐานข้อมูลของแอป จึงย้ายไปพร้อมข้อมูลอื่นและใช้งานได้ต่อ