PlanetScale
Bağla
PlanetScale hesabını terminalden bağla. PlanetScale hesabının kabul ettiği bayraklar için --help, başsız ortamlar için ayrıca --no-browser geç.
polylane cloud connect --provider planetscaleOAuth yetkilendirmesi ya da PlanetScale organizasyon ayarlarından bir servis tokenı.
PlanetScale OAuth üzerinden bağlanır: Connect with PlanetScale'e tıkla, PlanetScale'de okuma erişimini yetkilendir ve eşitleme zaten başlamış halde geri yönlendirilirsin. PlanetScale hesabın birden fazla organizasyona erişebiliyorsa sorulduğunda bağlanacak olanı seç. Tokenlar saklanmadan önce şifrelenir ve ajan onları asla görmez.
Servis tokenı alternatifi
Uzun ömürlü bir kimlik bilgisi tercih edersen bunun yerine bir servis tokenıyla bağlan:
- PlanetScale'i aç, organizasyonunun Settings → Service tokens'ına git.
- Create service token'a tıkla ve hem token kimliğini hem tokenı kopyala.
- Tokena organizasyona ve veritabanlarına okuma erişimi ver (örneğin
read_databases,read_branches). - Token kimliğini ve tokenı Polylane'e yapıştır. Token birden fazla organizasyona ulaşabiliyorsa bağlanacak organizasyonun adını da sağla.
- Polylane tokenı doğrular ve eşitlemeye başlar.
Her bağlantı tek bir PlanetScale organizasyonunu kapsar. Polylane veritabanlarını ve dallarını durum, plan, bölge ve şema etkinliği dahil keşfeder.
Sorun giderme
"Invalid service token" hatası
- Hem token kimliği hem token gereklidir; token tek başına kimlik doğrulayamaz.
- Tokenın PlanetScale ayarlarında silinmediğini kontrol et.
- Tokenın organizasyon okuma erişimi olduğundan emin ol.
"Multiple PlanetScale organizations are reachable" hatası
- Kimlik bilgileri birden fazla organizasyona ulaşabiliyor, bu yüzden bağlanacak olanı adlandır.
- Konsolda OAuth ile bağlanırken, yetkilendirmeden sonra sorulduğunda organizasyonu seç.
- API ile bağlanırken
organizationalanını organizasyon adına ayarla.
Eksik kaynaklar
- PlanetScale'in her şeyi eşitlemesi birkaç dakika sürebilir.
- Yenilemek için hesap başlığından elle bir Sync tetikle.
Bağlantıyı kesme
Hesabın Polylane ile bağlantısını kes, sonra servis tokenını PlanetScale organizasyon ayarlarından sil.
PlanetScale hesabını bir CI işinden veya tarayıcısı olmayan başka herhangi bir ortamdan bağla.
PlanetScale'i bağlamak tarayıcı gerektirmez: konsolun çağırdığı aynı uç nokta bir CI işine sığar. Kimliği doğrulanmış tek bir POST bağlantıyı oluşturur ve ilk eşitlemeyi başlatır.
Ön koşullar
cloud_accounts:writevecloud_accounts:readkapsamlı bir Polylane API anahtarı. Bkz. API anahtarları ve OAuth.ws_ile başlayan çalışma alanı kimliğin. Aynı anahtarlaGET /v1/workspacesüzerinden oku.- Organizasyonunun Settings → Service tokens'ından, organizasyon okuma erişimli (örneğin
read_databases,read_branches) bir PlanetScale servis tokenı çifti. Konsolun OAuth akışı tarayıcı gerektirir; servis tokenları gerektirmez.
Bağlantıyı oluştur
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"
}'
Tek çağrı bir PlanetScale organizasyonu bağlar.
organizationyalnızca token tam olarak tek bir organizasyona ulaşıyorsa atlanabilir; aksi halde çağrı, ulaşılabilir organizasyon adlarını listeleyen bir400ile başarısız olur.
Yanıt, ilk eşitleme zaten çalışıyor halde neyin bağlandığını listeler. Akışın geri kalanının okuduğu iki alana kırpılmış hali:
{
"success": true,
"result": {
"provider": "planetscale",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Zaten bağlı olan bir hesap accounts yerine failures içine düşer, bu yüzden çağrıyı yinelemek asla bir bağlantıyı çoğaltmaz.
İlk eşitlemeyi bekle
Döndürülen her hesabı id değeriyle, status değeri ready olana kadar yokla (kayıtta new, kaynaklar akarken 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
Başarısız bir bağlama işi askıda bırakmak yerine başarısız kılsın diye döngüye bir son tarih ver. Hesap ready olduğunda kaynakları topolojidedir ve Polylane ilk kontrolünü başlatmıştır.
API'den bağlantıyı kes
Bağlantıyı silmek her eşitlemeyi ve kontrolü durdurur ve Polylane'in tuttuğu kimlik bilgilerini siler. Çağrı cloud_accounts:delete kapsamını gerektirir:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
Sonra PlanetScale kimlik bilgisini, aşağıda Bağlantıyı kesme altında anlatıldığı gibi sağlayıcı tarafında iptal et.
Bağlantıyı kes
Bağlantıyı kesmek her eşitlemeyi ve kontrolü durdurur ve Polylane'in tuttuğu kimlik bilgilerini siler. Polylane, PlanetScale API'sinin kaldırmasına izin verdiği her şeyi kaldırır. Şunlar sen kendin kaldırana kadar kalır:
- OAuth grant
polylane cloud disconnect <id>Araçlar
2Ajanların threadlerde yapabileceği işlemler.
Desteklenen kaynaklar
2Altyapı grafiğinde görünen kaynak türleri.