fix(dataconnect): split fast connector sync from full schema sync

This commit is contained in:
zouantchaw
2026-02-27 15:28:09 -05:00
parent e0d633d65d
commit c52bb7e767
4 changed files with 59 additions and 19 deletions

View File

@@ -66,7 +66,8 @@ help:
@echo " make dataconnect-deploy [ENV=dev] Deploy Data Connect schemas (dev/staging)"
@echo " make dataconnect-sql-migrate [ENV=dev] Apply pending SQL migrations"
@echo " make dataconnect-generate-sdk [ENV=dev] Regenerate Data Connect client SDK"
@echo " make dataconnect-sync [ENV=dev] Full sync: deploy + migrate + generate SDK"
@echo " make dataconnect-sync [ENV=dev] Fast sync: deploy connector + generate SDK"
@echo " make dataconnect-sync-full [ENV=dev] Full sync: deploy + migrate + generate SDK"
@echo " make dataconnect-seed [ENV=dev] Seed database with test data"
@echo " make dataconnect-clean [ENV=dev] Delete all data from Data Connect"
@echo " make dataconnect-test [ENV=dev] Test Data Connect deployment (dry-run)"
@@ -101,6 +102,6 @@ help:
@echo ""
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@echo " 💡 Tip: Run 'make mobile-install' first for mobile development"
@echo " 💡 Tip: Use 'make dataconnect-sync' after schema changes"
@echo " 💡 Tip: Use 'make dataconnect-sync-full' after schema changes"
@echo " 💡 Tip: Default ENV=dev, use ENV=staging for staging environment"
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

View File

@@ -186,7 +186,8 @@ client.createInvoice();
| dataconnect-deploy | Deploy schemas |
| dataconnect-sql-migrate | Apply DB migrations |
| dataconnect-generate-sdk | Generate SDK |
| dataconnect-sync | Full backend update |
| dataconnect-sync | Fast connector + SDK sync |
| dataconnect-sync-full | Full backend update |
| dataconnect-test | Test without breaking |
| dataconnect-seed | Insert seed data |
| dataconnect-bootstrap-db | Create Cloud SQL |
@@ -195,7 +196,7 @@ client.createInvoice();
## 9. Correct Backend Workflow
### Production Flow
### Query/Connector Flow
```bash
make dataconnect-sync
@@ -203,9 +204,22 @@ make dataconnect-sync
Steps:
1. Deploy schema
2. Run SQL migrations
3. Generate SDK
1. Deploy connector
2. Generate SDK
---
### Full Schema Flow
```bash
make dataconnect-sync-full
```
Steps:
1. Deploy schema
2. Run SQL migrations
3. Generate SDK
---

View File

@@ -186,7 +186,8 @@ client.createInvoice();
| dataconnect-deploy | Deploy schemas |
| dataconnect-sql-migrate | Apply DB migrations |
| dataconnect-generate-sdk | Generate SDK |
| dataconnect-sync | Full backend update |
| dataconnect-sync | Fast connector + SDK sync |
| dataconnect-sync-full | Full backend update |
| dataconnect-test | Test without breaking |
| dataconnect-seed | Insert seed data |
| dataconnect-bootstrap-db | Create Cloud SQL |
@@ -195,7 +196,7 @@ client.createInvoice();
## 9. Correct Backend Workflow
### Production Flow
### Query/Connector Flow
```bash
make dataconnect-sync
@@ -203,9 +204,22 @@ make dataconnect-sync
Steps:
1. Deploy schema
2. Run SQL migrations
3. Generate SDK
1. Deploy connector
2. Generate SDK
---
### Full Schema Flow
```bash
make dataconnect-sync-full
```
Steps:
1. Deploy schema
2. Run SQL migrations
3. Generate SDK
---

View File

@@ -2,11 +2,14 @@
# Usage examples:
# make dataconnect-sync DC_ENV=dev
# make dataconnect-sync-full DC_ENV=dev
# make dataconnect-seed DC_ENV=validation
# make dataconnect-clean DC_ENV=validation
# make dataconnect-generate-sdk DC_ENV=dev
#
DC_ENV ?= dev
DC_LOCATION ?= us-central1
DC_CONNECTOR_ID ?= example
DC_SERVICE_DEV := krow-workforce-db
DC_SERVICE_VALIDATION := krow-workforce-db-validation
@@ -19,7 +22,7 @@ else
$(error Invalid DC_ENV '$(DC_ENV)'. Use DC_ENV=dev or DC_ENV=validation)
endif
.PHONY: dataconnect-enable-apis dataconnect-init dataconnect-deploy dataconnect-sql-migrate dataconnect-generate-sdk dataconnect-sync dataconnect-bootstrap-db check-gcloud-beta dataconnect-clean dataconnect-bootstrap-validation-db dataconnect-file dataconnect-file-validation dataconnect-file-dev dataconnect-seed dataconnect-test
.PHONY: dataconnect-enable-apis dataconnect-init dataconnect-deploy dataconnect-sql-migrate dataconnect-generate-sdk dataconnect-sync dataconnect-sync-full dataconnect-bootstrap-db check-gcloud-beta dataconnect-clean dataconnect-bootstrap-validation-db dataconnect-file dataconnect-file-validation dataconnect-file-dev dataconnect-seed dataconnect-test
#creation dataconnect file
dataconnect-file:
@@ -79,15 +82,23 @@ dataconnect-generate-sdk: dataconnect-file
@firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS)
@echo "✅ Data Connect SDK generation completed for [$(DC_ENV)]."
# Unified backend schema update workflow (schema -> deploy -> SDK)
# Fast sync workflow for connector/query changes (deploy connector -> SDK)
dataconnect-sync: dataconnect-file
@echo "--> [1/3] Deploying Data Connect [$(DC_SERVICE)]..."
@firebase deploy --only dataconnect:$(DC_SERVICE) --project=$(FIREBASE_ALIAS)
@echo "--> [1/2] Deploying Data Connect connector [$(DC_SERVICE):$(DC_CONNECTOR_ID)]..."
@firebase deploy --only dataconnect:$(DC_SERVICE):$(DC_CONNECTOR_ID) --project=$(FIREBASE_ALIAS) --force
@echo "--> [2/2] Regenerating SDK [$(DC_SERVICE)]..."
@firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS)
@echo "✅ Data Connect connector + SDK sync completed for [$(DC_ENV)]."
# Full backend schema update workflow (schema -> migrate -> SDK)
dataconnect-sync-full: dataconnect-file
@echo "--> [1/3] Deploying full Data Connect service [$(DC_SERVICE)]..."
@firebase deploy --only dataconnect:$(DC_SERVICE) --project=$(FIREBASE_ALIAS) --force
@echo "--> [2/3] Applying SQL migrations [$(DC_SERVICE)]..."
@firebase dataconnect:sql:migrate --project=$(FIREBASE_ALIAS)
@firebase dataconnect:sql:migrate --project=$(FIREBASE_ALIAS) --service $(DC_SERVICE) --location $(DC_LOCATION) --force
@echo "--> [3/3] Regenerating SDK [$(DC_SERVICE)]..."
@firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS)
@echo "✅ Data Connect SQL, deploy, and SDK generation [$(ENV)]."
@echo "✅ Data Connect full schema sync completed for [$(DC_ENV)]."
# Execute seed in Firebase Data Connect
dataconnect-seed: dataconnect-file
@@ -268,4 +279,4 @@ dataconnect-bootstrap-validation-database: dataconnect-file-validation
@echo "⚠️ Generating Data Connect SDK ($(DC_SERVICE))..."
@firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS)
@echo "🎉 Validation Cloud SQL + Data Connect bootstrap completed successfully!"
@echo "🎉 Validation Cloud SQL + Data Connect bootstrap completed successfully!"