Firebase Data Connect hizmeti üç ana bileşenden oluşur:
- Kendi SQL şemasına sahip temel bir PostgreSQL veritabanı
- Data Connect uygulama şeması (
.gql
dosyalarınızda beyan edilmiştir) - çeşitli bağlayıcılar (
.gql
dosyalarınızda tanımlanır).
SQL şeması, verilerinizin doğru kaynağıdır. Data Connect şeması, bağlayıcılarınızın bu verileri nasıl görebileceğini belirtir. Bağlayıcılar ise istemcilerinizin bu verilere erişmek için kullanabileceği API'leri tanımlar.
Data Connect hizmetinizi KSA ile dağıttığınızda SQL şemanızı taşıyın, ardından Data Connect şemanızı güncelleyin ve her bir bağlayıcınızı güncelleyin.
Önemli dağıtım kavramları
Dağıtımı tam olarak anlamak için, Google'ın kullanılabilmesini sağlayan ve bağlayıcıları nasıl kullanacağınızı öğreneceksiniz.
Şema dağıtımları
Bir Data Connect şemasının dağıtılması, uygulamanızın SQL şemasını etkiler: Cloud SQL veritabanı. Data Connect, yeni bir veritabanıyla çalışıyor veya mevcut bir veritabanını veri kaybı olmadan uyarlamanız gerekiyorsa dağıtım sırasında şemalarınızı taşımanıza yardımcı olur.
Data Connect şema taşıma işlemlerinde iki farklı şema doğrulama modu vardır: katı ve uyumlu.
Katı mod doğrulaması, veritabanı şemasının tam olarak güncellemeden önceki uygulama şemasını kullanmanız gerekir. Herhangi biri Data Connect şemanızda kullanılmayan tablolar veya sütunlar veritabanından silinecek.
Uyumlu mod doğrulaması, veritabanı şemasının uyumlu olmasını gerektirir uygulama şemasının güncellenebilmesi için öncelikle uygulama şemasıyla güncellemeniz gerekir. herhangi biri Şemaları, tabloları veya sütunları kaldıran ek değişiklikler isteğe bağlıdır.
Uyumlu, şema taşıma işlemlerinin yalnızca tablo ve sütunları etkilediği anlamına gelir. . Veritabanınıza uygulama şemanız tarafından kullanılmayan öğeler değiştirilmeden bırakılır. Bu nedenle, dağıtım sonrasında veritabanınızda kullanılmayan öğeler bulunabilir:
- Şemalar
- Tablolar
- Sütunlar
Bağlayıcı dağıtımları
Data Connect sorguları ve mutasyonları istemci kodu tarafından gönderilmez ve sunucuda yürütülmez. Bunun yerine bu Data Connect işlemleri sunucuda depolanır. Örneğin: Cloud Functions. Bu, dağıtımın mevcut kullanıcıları etkileyebileceği anlamına gelir.
Dağıtım iş akışını takip etme
Data Connect projelerinde hem yerel proje dizininde hem de Firebase konsolunda çalışabilirsiniz.
Önerilen dağıtım akışı şunları içerir:
firebase dataconnect:services:list
ile şu anda dağıtılmış şema ve bağlayıcıları listeleme.- Şema güncellemelerini yönetme.
- Cloud SQL'iniz arasındaki SQL şeması farklılıklarını kontrol etme
firebase dataconnect:sql:diff
ile veritabanı ve yerel Data Connect şeması. - Gerekirse
dataconnect:sql:migrate
ile SQL şeması taşıma işlemini gerçekleştirin.
- Cloud SQL'iniz arasındaki SQL şeması farklılıklarını kontrol etme
firebase deploy
komutunu çalıştırarak şema ve bağlantı dağıtımlarını gerçekleştirme ya sadece bağlayıcılarınız ya da kaynak kombinasyonlarınız için kullanılır.
Data Connect kaynaklarını dağıtın ve yönetin
Dağıtımlar gerçekleştirmeden önce üretim kaynaklarını doğrulamanız önerilir.
firebase dataconnect:services:list
Yerel bir proje dizininde çalışırken şemanızı ve bağlayıcılarınızı etkileşimli geri bildirimlerle üretime dağıtmak için genellikle firebase deploy
komutunu kullanırsınız.
--only dataconnect
işareti herhangi bir deploy
komutu kullanıldığında
Projenizdeki diğer ürünlerden Data Connect dağıtım.
Normal dağıtım
firebase deploy --only dataconnect
Bu normal dağıtımda Firebase KSA, şemanızı dağıtmaya çalışır ve bağlayıcıları vardır.
Yeni şemanın mevcut bağlayıcıları bozmadığını doğrular. Zarar veren değişiklikler yaparken en iyi uygulamaları takip edin.
Ayrıca, Data Connect şemasını güncellemeden önce SQL şemasının zaten taşındığını doğrular. Değilse size otomatik olarak Şemaları taşımak için gerekli adımları uygulayın.
--force
işaret dağıtımı
firebase deploy --only dataconnect --force
Bağlantılayıcı veya SQL şeması doğrulamaları sorun oluşturmuyorsa bunları yoksaymak için komutu --force
ile yeniden çalıştırabilirsiniz.
--force
dağıtımı, SQL şemasının Data Connect şemasıyla eşleşip eşleşmediğini kontrol etmeye, uyumsuzluk konusunda uyarıda bulunmaya ve istem göstermeye devam eder.
Seçilen kaynakları dağıtma
Daha ayrıntılı denetimle dağıtmak için şu politikayı içeren --only
işaretini kullanın:
serviceId
bağımsız değişken. Belirli bir hizmete ilişkin yalnızca şema değişikliklerini dağıtmak için:
firebase deploy --only dataconnect:serviceId:schema
Belirli bir bağlayıcı ve hizmet için tüm kaynakları da dağıtabilirsiniz.
firebase deploy --only dataconnect:serviceId:connectorId
Son olarak, şemayı ve tüm bağlayıcıları tek bir hizmet için dağıtabilirsiniz.
firebase deploy --only dataconnect:serviceId
Dağıtımı geri çekme
Manuel geri alma işlemi yapmak için kodunuzun önceki bir sürümünü inceleyin ve dağıtın. Orijinal dağıtım yıkıcı zarar veren değişiklikler içeriyorsa silinen verileri tamamen kurtaramayabilirsiniz.
Veritabanı şemalarını taşıma
Hızlı bir şekilde prototip oluşturuyorsanız, şemalarla denemeler yapıyorsanız ve şemanızı biliyorsanız varsayımlarda bulunmak için Data Connect araçlarını kullanmayı ve güncellemelerin nasıl yapılacağını denetleyerek değişiklikleri doğrulayabilirsiniz.
SQL şeması değişiklikleriyle ilgili fark
Değişiklikleri doğrulayabilirsiniz:
firebase dataconnect:sql:diff
Virgülle ayrılmış bir hizmet listesi iletebilirsiniz.
Bu komut, bir hizmetin yerel şemasını ilgili Cloud SQL veritabanı. Fark varsa bu farkı düzeltmek için çalıştırılacak SQL komutlarını yazdırır.
Değişiklikleri uygula
Gerekli koşulları karşıladığınızda ve değişiklikleri Cloud SQL şemasında dağıtmaya hazır olduğunuzda
firebase dataconnect:sql:migrate
komutunu yayınlayın.
değişiklikleri onaylamanız istenir.
firebase dataconnect:sql:migrate [serviceId]
Etkileşimli ortamlarda SQL taşıma ifadeleri ve işlem istemleri gösterilir.
Katı veya uyumlu modda taşıma
Yeni bir projede varsayılan şema doğrulama modu kullanılır.
geçerli olur. migrate
komutunun davranışı, uygulama şemanız tarafından gerekli olan tüm veritabanı şeması değişikliklerini uygulamak ve ardından veritabanı şemanızı uygulama şemanızla tam olarak eşleştirmeye zorlamak için şemaları, tabloları veya sütunları bırakan isteğe bağlı işlemleri onaylamanızı istemektir.
dataconnect.yaml
dosyanızda değişiklik yaparak bu davranışı ayarlayabilirsiniz.
schemaValidation
anahtarındaki açıklamayı kaldırın ve yalnızca COMPATIBLE
bildiriminde bulunun.
taşıma işlemlerine uygulanır.
schemaValidation: "COMPATIBLE"
Alternatif olarak, tüm şema değişikliklerinin uygulanması ve veritabanı şemanızın uygulama şemanızla eşleşmesi için davranışı STRICT
olarak ayarlayabilirsiniz.
schemaValidation: "STRICT"
Daha fazla bilgi için Data Connect CLI referansına bakın.
Şemaları ve bağlayıcıları yönetmeye yönelik en iyi uygulamalar
Firebase, Data Connectprojelerinizde uygulayabileceğiniz bazı uygulamaları önerir.
Zarar veren değişiklikleri en aza indirin
- Firebase, Data Connect şeması ve bağlayıcı dosyalarınızı kaynak denetiminde tutmanızı önerir.
- Mümkünse akış bozucu değişikliklerden kaçının. Kullanıcı deneyimini bozan değişikliklere örnek olarak şunlar verilebilir:
- Bir alanı şemanızdan kaldırma
- Şemanızda boş değer atanabilir bir alanı null olamaz (ör.
Int
->Int!
) yapma - Şemanızdaki bir alanı yeniden adlandırma
- Şemanızdan bir alanı kaldırmanız gerekiyorsa alanı bölmeyi düşünebilirsiniz
birkaç dağıtıma bölebilirsiniz:
- Öncelikle, bağlayıcılarınızdaki alana yapılan tüm referansları kaldırın ve değişikliği dağıtın.
- Ardından, uygulamalarınızı yeni oluşturulan SDK'ları kullanacak şekilde güncelleyin.
- Son olarak, şema
.gql
dosyanızdaki alanı kaldırıp SQL'inizi taşıyın. bir kez daha dağıtabilirsiniz.
Yeni veritabanlarıyla çalışırken yüksek düzey modunu kullan
Data Connect ürününü yeni bir veritabanıyla kullanıyorsanız ve
uygulama şemanızı oluşturuyor ve veritabanı şemanızın
uygulama şemanızla tam olarak uyumlu olduğundan emin olmak için
dataconnect.yaml
içinde schemaValidation: "STRICT"
.
Bu sayede, isteğe bağlı değişikliklerin de uygulanması sağlanır.
Veritabanında üretim verileri varsa uyumlu modu kullanma
Üretim verilerini içeren bir veritabanında değişiklik yapıyorsanız mevcut verilerin silinmediğinden emin olmak için şema taşıma işlemlerinizi uyumlu modda gerçekleştirmenizi öneririz. schemaValidation: "COMPATIBLE"
'yi dataconnect.yaml
Uyumlu modda, veritabanınıza yalnızca gerekli şema taşıma değişiklikleri uygulanır.
DROP SCHEMA
,DROP TABLE
veDROP COLUMN
isteğe bağlı olarak değerlendirilir ifadeleri ve veritabanı şemanız olsa bile planınız için oluşturulmaz uygulama şemanızda tanımlanmayan şemalar, tablolar veya sütunlar içeriyorsa.- Veritabanı tablonuz
NOT NULL
kısıtlaması kaldırılır. Böylece veriler tanımladığınız bağlayıcılarla tabloya eklenmeye devam eder.
Sırada ne var?
- Oluşturulan SDK'larla geliştirdiğiniz istemci kodunu dağıtma ve yönetme Android ile ilgili kılavuzlarda iOS, web ve Çubuk.
- Dağıtım araçları hakkında daha fazla bilgi edinmek için Data Connect CLI referansını inceleyin. ve Data Connect yapılandırma dosyası referansı.