Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement schemaValidation mode handling in dataconnect:sql:migrate and deploy #7639

Merged
merged 14 commits into from
Sep 16, 2024

Conversation

rosalyntan
Copy link
Member

@rosalyntan rosalyntan commented Sep 11, 2024

Description

Updates firebase dataconnect:sql:migrate and firebase deploy per go/fdc-compat-mode-cli-api.

Scenarios Tested

schemaValidation unset, both required and optional changes:

  • firebase deploy
  • firebase deploy --force
  • firebase deploy --non-interactive
  • firebase deploy --non-interactive --force
  • firebase dataconnect:sql:migrate
  • firebase dataconnect:sql:migrate --force
  • firebase dataconnect:sql:migrate --non-interactive
  • firebase dataconnect:sql:migrate --non-interactive --force

schemaValidation unset, only required changes:

  • firebase deploy
  • firebase deploy --force
  • firebase deploy --non-interactive
  • firebase deploy --non-interactive --force
  • firebase dataconnect:sql:migrate
  • firebase dataconnect:sql:migrate --force
  • firebase dataconnect:sql:migrate --non-interactive
  • firebase dataconnect:sql:migrate --non-interactive --force

schemaValidation unset, only optional changes:

  • firebase deploy
  • firebase deploy --force
  • firebase deploy --non-interactive
  • firebase deploy --non-interactive --force
  • firebase dataconnect:sql:migrate
  • firebase dataconnect:sql:migrate --force
  • firebase dataconnect:sql:migrate --non-interactive
  • firebase dataconnect:sql:migrate --non-interactive --force

schemaValidation=COMPATIBLE, both required and optional changes:

  • firebase deploy
  • firebase deploy --force
  • firebase deploy --non-interactive
  • firebase deploy --non-interactive --force
  • firebase dataconnect:sql:migrate
  • firebase dataconnect:sql:migrate --force
  • firebase dataconnect:sql:migrate --non-interactive
  • firebase dataconnect:sql:migrate --non-interactive --force

schemaValidation=COMPATIBLE, only optional changes:

  • firebase deploy
  • firebase deploy --force
  • firebase deploy --non-interactive
  • firebase deploy --non-interactive --force
  • firebase dataconnect:sql:migrate
  • firebase dataconnect:sql:migrate --force
  • firebase dataconnect:sql:migrate --non-interactive
  • firebase dataconnect:sql:migrate --non-interactive --force

schemaValidation=STRICT, both required and optional changes:

  • firebase deploy
  • firebase deploy --force
  • firebase deploy --non-interactive
  • firebase deploy --non-interactive --force
  • firebase dataconnect:sql:migrate
  • firebase dataconnect:sql:migrate --force
  • firebase dataconnect:sql:migrate --non-interactive
  • firebase dataconnect:sql:migrate --non-interactive --force

Sample Commands

firebase deploy, with schemaValidation unset, both required and optional changes, and default options selected:
Screenshot 2024-09-13 at 6 42 25 PM

@rosalyntan rosalyntan changed the title Implement schemaValidation mode handling in remaining commands. Implement schemaValidation mode handling in dataconnect:sql:migrate and deploy Sep 11, 2024
@rosalyntan rosalyntan changed the title Implement schemaValidation mode handling in dataconnect:sql:migrate and deploy Implement schemaValidation mode handling in dataconnect:sql:migrate and deploy Sep 11, 2024
@rosalyntan rosalyntan marked this pull request as ready for review September 14, 2024 01:38
@@ -34,6 +34,7 @@ export const command = new Command("dataconnect:sql:migrate [serviceId]")
options,
schema: serviceInfo.schema,
validateOnly: true,
schemaValidation: serviceInfo.dataConnectYaml.schema.datasource.postgresql?.schemaValidation,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quick sanity check - does this get broken by our move from datasource -> datasources? @fredzqm might know off the top of his head.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chatted offline -- based on go/fdc:multi-data-source it looks like the datasource field will still be supported, though we should also support datasources in #7589.

src/dataconnect/schemaMigration.ts Outdated Show resolved Hide resolved
src/dataconnect/schemaMigration.ts Outdated Show resolved Hide resolved
@rosalyntan rosalyntan enabled auto-merge (squash) September 16, 2024 22:24
@rosalyntan rosalyntan merged commit b89cb2f into master Sep 16, 2024
41 checks passed
@rosalyntan rosalyntan deleted the rosalyntan.migrate branch September 16, 2024 22:39
pr-Mais pushed a commit that referenced this pull request Sep 19, 2024
…e` and `deploy` (#7639)

* Support handling schema validation options in `diff`.

* Format.

* Don't output second set of diffs if they're equal to the first.

* Update dataconnect:sql:migrate

* Fix my failed rebase lol

* Finish handling schemaValidation mode in `dataconnect:sql:migrate`.

* Fix setSchemaValidationMode.

* Concat follow-up strict diffs, instead of replacing compat diffs.

* Don't display purely optional changes with  flag.

* Pass `schemaValidation` into `deploy` command.

* Address review comments.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants