PlanetScale
เชื่อมต่อ
เชื่อมต่อ PlanetScale จากเทอร์มินัล ส่ง --help เพื่อดูแฟล็กที่ PlanetScale รับ รวมถึง --no-browser สำหรับสภาพแวดล้อมที่ไม่มีหน้าจอ
polylane cloud connect --provider planetscaleการอนุญาตผ่าน OAuth หรือ service token จากการตั้งค่าองค์กร PlanetScale ของคุณ
PlanetScale เชื่อมต่อผ่าน OAuth: คลิก Connect with PlanetScale อนุญาตสิทธิ์อ่านบน PlanetScale แล้วคุณจะถูก redirect กลับมาพร้อมการซิงก์ที่เริ่มแล้ว หากบัญชี PlanetScale ของคุณเข้าถึงได้มากกว่าหนึ่งองค์กร ให้เลือกองค์กรที่จะเชื่อมต่อเมื่อถูกถาม โทเค็นถูกเข้ารหัสก่อนจัดเก็บ และเอเจนต์ไม่มีทางเห็นมัน
ทางเลือกใช้ service token
หากคุณต้องการข้อมูลรับรองอายุยาว ให้เชื่อมต่อด้วย service token แทน:
- เปิด PlanetScale ไปที่ Settings → Service tokens ขององค์กรของคุณ
- คลิก Create service token และคัดลอกทั้ง token ID และ token
- ให้โทเค็นมีสิทธิ์อ่านองค์กรและฐานข้อมูลของมัน (เช่น
read_databases,read_branches) - วาง token ID และ token ใน Polylane หากโทเค็นเข้าถึงได้มากกว่าหนึ่งองค์กร ให้ระบุชื่อองค์กรที่จะเชื่อมต่อด้วย
- Polylane ตรวจสอบโทเค็นและเริ่มซิงก์
แต่ละการเชื่อมต่อครอบคลุมองค์กร PlanetScale เดียว Polylane ค้นหาฐานข้อมูลและ branch ของมัน รวมถึงสถานะ แผน region และกิจกรรมของ schema
การแก้ปัญหา
ข้อผิดพลาด "Invalid service token"
- ต้องมีทั้ง token ID และ token โทเค็นเพียงลำพังยืนยันตัวตนไม่ได้
- ตรวจว่าโทเค็นไม่ได้ถูกลบในการตั้งค่าของ PlanetScale
- ตรวจสอบว่าโทเค็นมีสิทธิ์อ่านองค์กร
ข้อผิดพลาด "Multiple PlanetScale organizations are reachable"
- ข้อมูลรับรองเข้าถึงได้มากกว่าหนึ่งองค์กร จึงต้องระบุชื่อองค์กรที่จะเชื่อมต่อ
- เมื่อเชื่อมต่อผ่าน OAuth ในคอนโซล ให้เลือกองค์กรเมื่อถูกถามหลังอนุญาต
- เมื่อเชื่อมต่อผ่าน API ให้ตั้งฟิลด์
organizationเป็นชื่อองค์กร
ทรัพยากรหายไป
- PlanetScale อาจใช้เวลาสองสามนาทีในการซิงก์ทุกอย่าง
- สั่ง Sync ด้วยตัวเองจากส่วนหัวของบัญชีเพื่อรีเฟรช
การยกเลิกการเชื่อมต่อ
ยกเลิกการเชื่อมต่อบัญชีใน Polylane แล้วลบ service token จากการตั้งค่าองค์กร PlanetScale ของคุณ
เชื่อมต่อ PlanetScale จากงาน CI หรือสภาพแวดล้อมอื่นใดที่ไม่มีเบราว์เซอร์
การเชื่อมต่อ PlanetScale ไม่ต้องใช้เบราว์เซอร์: endpoint เดียวกับที่คอนโซลเรียกอยู่ในงาน CI ได้ POST ที่ยืนยันตัวตนแล้วครั้งเดียวสร้างการเชื่อมต่อและเริ่มการซิงก์ครั้งแรก
สิ่งที่ต้องมีก่อน
- คีย์ API ของ Polylane ที่มีสโคป
cloud_accounts:writeและcloud_accounts:readดูคีย์ API และ OAuth - ID ของ workspace ของคุณ ซึ่งเริ่มด้วย
ws_อ่านจากGET /v1/workspacesด้วยคีย์เดียวกัน - คู่ service token ของ PlanetScale จาก Settings → Service tokens ขององค์กรของคุณ ที่มีสิทธิ์อ่านองค์กร (เช่น
read_databases,read_branches) ขั้นตอน OAuth ของคอนโซลต้องใช้เบราว์เซอร์ service token ไม่ต้อง
สร้างการเชื่อมต่อ
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "planetscale",
"workspaceId": "ws_0abc123",
"tokenId": "<service-token-id>",
"token": "<service-token>",
"organization": "my-org"
}'
การเรียกครั้งเดียวเชื่อมต่อองค์กร PlanetScale เดียว
organizationละได้เฉพาะเมื่อโทเค็นเข้าถึงองค์กรเดียวพอดี ไม่เช่นนั้นการเรียกล้มเหลวด้วย400ที่แสดงรายการชื่อองค์กรที่เข้าถึงได้
การตอบกลับแสดงรายการสิ่งที่เชื่อมต่อแล้ว พร้อมการซิงก์ครั้งแรกที่รันอยู่ ตัดให้เหลือสองฟิลด์ที่ขั้นตอนที่เหลืออ่าน:
{
"success": true,
"result": {
"provider": "planetscale",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
บัญชีที่เชื่อมต่ออยู่แล้วจะไปอยู่ใน failures แทน accounts การเรียกซ้ำจึงไม่มีทางทำให้การเชื่อมต่อซ้ำ
รอการซิงก์ครั้งแรก
poll แต่ละบัญชีที่คืนมาด้วย id ของมันจนกว่า status จะถึง ready (new เมื่อลงทะเบียน syncing ขณะทรัพยากรไหลเข้า):
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
ให้ loop มีเส้นตายเพื่อให้การเชื่อมต่อที่ล้มเหลวทำให้งานล้มเหลวแทนที่จะค้าง เมื่อบัญชี ready แล้ว ทรัพยากรของมันอยู่ในโทโพโลยีและ Polylane เริ่มการตรวจสอบครั้งแรกแล้ว
ยกเลิกการเชื่อมต่อจาก API
การลบการเชื่อมต่อหยุดทุกการซิงก์และการตรวจสอบ และลบข้อมูลรับรองที่ Polylane เก็บไว้ การเรียกต้องใช้สโคป cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
จากนั้นเพิกถอนข้อมูลรับรอง PlanetScale ฝั่งผู้ให้บริการ ตามที่อธิบายใต้ Disconnect ด้านล่าง
ยกเลิกการเชื่อมต่อ
การยกเลิกการเชื่อมต่อหยุดทุกการซิงก์และการตรวจสอบ และลบข้อมูลรับรองที่ Polylane เก็บไว้ Polylane ลบสิ่งที่ API ของ PlanetScale อนุญาตให้ลบ สิ่งต่อไปนี้ยังคงอยู่จนกว่าคุณจะลบด้วยตัวเอง:
- OAuth grant
polylane cloud disconnect <id>เครื่องมือ
2การดำเนินการที่เอเจนต์ทำได้ในเธรด
ทรัพยากรที่รองรับ
2ประเภททรัพยากรที่ปรากฏในกราฟโครงสร้างพื้นฐานของคุณ