fix(dataconnect): split fast connector sync from full schema sync
This commit is contained in:
5
Makefile
5
Makefile
@@ -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 "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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!"
|
||||
|
||||
Reference in New Issue
Block a user