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-deploy [ENV=dev] Deploy Data Connect schemas (dev/staging)"
|
||||||
@echo " make dataconnect-sql-migrate [ENV=dev] Apply pending SQL migrations"
|
@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-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-seed [ENV=dev] Seed database with test data"
|
||||||
@echo " make dataconnect-clean [ENV=dev] Delete all data from Data Connect"
|
@echo " make dataconnect-clean [ENV=dev] Delete all data from Data Connect"
|
||||||
@echo " make dataconnect-test [ENV=dev] Test Data Connect deployment (dry-run)"
|
@echo " make dataconnect-test [ENV=dev] Test Data Connect deployment (dry-run)"
|
||||||
@@ -101,6 +102,6 @@ help:
|
|||||||
@echo ""
|
@echo ""
|
||||||
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
@echo " 💡 Tip: Run 'make mobile-install' first for mobile development"
|
@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 " 💡 Tip: Default ENV=dev, use ENV=staging for staging environment"
|
||||||
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
|
|||||||
@@ -186,7 +186,8 @@ client.createInvoice();
|
|||||||
| dataconnect-deploy | Deploy schemas |
|
| dataconnect-deploy | Deploy schemas |
|
||||||
| dataconnect-sql-migrate | Apply DB migrations |
|
| dataconnect-sql-migrate | Apply DB migrations |
|
||||||
| dataconnect-generate-sdk | Generate SDK |
|
| 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-test | Test without breaking |
|
||||||
| dataconnect-seed | Insert seed data |
|
| dataconnect-seed | Insert seed data |
|
||||||
| dataconnect-bootstrap-db | Create Cloud SQL |
|
| dataconnect-bootstrap-db | Create Cloud SQL |
|
||||||
@@ -195,7 +196,7 @@ client.createInvoice();
|
|||||||
|
|
||||||
## 9. Correct Backend Workflow
|
## 9. Correct Backend Workflow
|
||||||
|
|
||||||
### Production Flow
|
### Query/Connector Flow
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make dataconnect-sync
|
make dataconnect-sync
|
||||||
@@ -203,9 +204,22 @@ make dataconnect-sync
|
|||||||
|
|
||||||
Steps:
|
Steps:
|
||||||
|
|
||||||
1. Deploy schema
|
1. Deploy connector
|
||||||
2. Run SQL migrations
|
2. Generate SDK
|
||||||
3. 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-deploy | Deploy schemas |
|
||||||
| dataconnect-sql-migrate | Apply DB migrations |
|
| dataconnect-sql-migrate | Apply DB migrations |
|
||||||
| dataconnect-generate-sdk | Generate SDK |
|
| 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-test | Test without breaking |
|
||||||
| dataconnect-seed | Insert seed data |
|
| dataconnect-seed | Insert seed data |
|
||||||
| dataconnect-bootstrap-db | Create Cloud SQL |
|
| dataconnect-bootstrap-db | Create Cloud SQL |
|
||||||
@@ -195,7 +196,7 @@ client.createInvoice();
|
|||||||
|
|
||||||
## 9. Correct Backend Workflow
|
## 9. Correct Backend Workflow
|
||||||
|
|
||||||
### Production Flow
|
### Query/Connector Flow
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make dataconnect-sync
|
make dataconnect-sync
|
||||||
@@ -203,9 +204,22 @@ make dataconnect-sync
|
|||||||
|
|
||||||
Steps:
|
Steps:
|
||||||
|
|
||||||
1. Deploy schema
|
1. Deploy connector
|
||||||
2. Run SQL migrations
|
2. Generate SDK
|
||||||
3. 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:
|
# Usage examples:
|
||||||
# make dataconnect-sync DC_ENV=dev
|
# make dataconnect-sync DC_ENV=dev
|
||||||
|
# make dataconnect-sync-full DC_ENV=dev
|
||||||
# make dataconnect-seed DC_ENV=validation
|
# make dataconnect-seed DC_ENV=validation
|
||||||
# make dataconnect-clean DC_ENV=validation
|
# make dataconnect-clean DC_ENV=validation
|
||||||
# make dataconnect-generate-sdk DC_ENV=dev
|
# make dataconnect-generate-sdk DC_ENV=dev
|
||||||
#
|
#
|
||||||
DC_ENV ?= dev
|
DC_ENV ?= dev
|
||||||
|
DC_LOCATION ?= us-central1
|
||||||
|
DC_CONNECTOR_ID ?= example
|
||||||
|
|
||||||
DC_SERVICE_DEV := krow-workforce-db
|
DC_SERVICE_DEV := krow-workforce-db
|
||||||
DC_SERVICE_VALIDATION := krow-workforce-db-validation
|
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)
|
$(error Invalid DC_ENV '$(DC_ENV)'. Use DC_ENV=dev or DC_ENV=validation)
|
||||||
endif
|
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
|
#creation dataconnect file
|
||||||
dataconnect-file:
|
dataconnect-file:
|
||||||
@@ -79,15 +82,23 @@ dataconnect-generate-sdk: dataconnect-file
|
|||||||
@firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS)
|
@firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS)
|
||||||
@echo "✅ Data Connect SDK generation completed for [$(DC_ENV)]."
|
@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
|
dataconnect-sync: dataconnect-file
|
||||||
@echo "--> [1/3] Deploying Data Connect [$(DC_SERVICE)]..."
|
@echo "--> [1/2] Deploying Data Connect connector [$(DC_SERVICE):$(DC_CONNECTOR_ID)]..."
|
||||||
@firebase deploy --only dataconnect:$(DC_SERVICE) --project=$(FIREBASE_ALIAS)
|
@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)]..."
|
@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)]..."
|
@echo "--> [3/3] Regenerating SDK [$(DC_SERVICE)]..."
|
||||||
@firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS)
|
@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
|
# Execute seed in Firebase Data Connect
|
||||||
dataconnect-seed: dataconnect-file
|
dataconnect-seed: dataconnect-file
|
||||||
@@ -268,4 +279,4 @@ dataconnect-bootstrap-validation-database: dataconnect-file-validation
|
|||||||
@echo "⚠️ Generating Data Connect SDK ($(DC_SERVICE))..."
|
@echo "⚠️ Generating Data Connect SDK ($(DC_SERVICE))..."
|
||||||
@firebase dataconnect:sdk:generate --project=$(FIREBASE_ALIAS)
|
@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