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

Fix report_card.collection_preview in v49 #42950

Merged
merged 1 commit into from
May 21, 2024

Conversation

johnswanson
Copy link
Contributor

This is a bit painful. I merged this change, but realized we need to backport the fix to v49. However:

  • we don't want to have two versions of the migration (one with a v49 id, one with a v50 id) because then if someone upgrades to 50, then downgrades to 49, the rollback will run and change the type back, leading to a bug.

  • we don't want to push a v51 changeSet ID to v49 or v50, because we give the user a helpful notice when their database needs a downgrade. We do this by checking for the latest executed migration in the database and comparing it to the latest migration that Liquibase knows about, and making sure the executed isn't bigger than the known (e.g. you can't have executed a v51 migration if it isn't in the local migration yaml). That would all work fine, except that then we want to tell you how to downgrade your database, and we use the latest-executed version for that. So if, for example, someone upgraded from 48 to 49 and got a v51 changeset, then downgraded back to 48, they would get an error telling them to run the v51 jar to roll back their DB.

In this case though, I think it's fine to just move the migration around to v49, then we can backport it to 49 and 50.

@metabase-bot metabase-bot bot added the .Team/AdminWebapp Admin and Webapp team label May 21, 2024
@johnswanson johnswanson added the backport Automatically create PR on current release branch on merge label May 21, 2024
Copy link

replay-io bot commented May 21, 2024

Status Complete ↗︎
Commit 05734a3
Results
⚠️ 1 Flaky
2572 Passed

@johnswanson johnswanson added no-backport Do not backport this PR to any branch and removed backport Automatically create PR on current release branch on merge labels May 21, 2024
@johnswanson
Copy link
Contributor Author

I'm manually backporting this here

@johnswanson johnswanson enabled auto-merge (squash) May 21, 2024 14:23
This is a bit painful. I merged this change, but realized we need to
backport the fix to v49. However:

- we don't want to have two versions of the migration (one with a v49
id, one with a v50 id) because then if someone upgrades to 50, then
downgrades to 49, the `rollback` will run and change the type back,
leading to a bug.

- we don't want to push a v51 changeSet ID to v49 or v50, because we
give the user a helpful notice when their database needs a downgrade.
We do this by checking for the latest *executed* migration in the
database and comparing it to the latest migration that Liquibase knows
about, and making sure the executed isn't bigger than the known (e.g.
you can't have executed a v51 migration if it isn't in the local
migration yaml). That would all work fine, except that then we want to
tell you how to downgrade your database, and we use the latest-executed
version for that. So if, for example, someone upgraded from 48 to 49 and
got a v51 changeset, then downgraded back to 48, they would get an error
telling them to run the *v51* jar to roll back their DB.

In this case though, I think it's fine to just move the migration around
to v49, then we can backport it to 49 and 50.
@johnswanson johnswanson force-pushed the jds/correct-type-on-collection-preview-redux branch from 7de4ac6 to 05734a3 Compare May 21, 2024 22:51
@johnswanson johnswanson merged commit 1279a73 into master May 21, 2024
108 checks passed
@johnswanson johnswanson deleted the jds/correct-type-on-collection-preview-redux branch May 21, 2024 23:34
Copy link

@johnswanson Did you forget to add a milestone to the issue for this PR? When and where should I add a milestone?

@johnswanson johnswanson added this to the 0.49.12 milestone May 22, 2024
oisincoveney pushed a commit that referenced this pull request May 22, 2024
This is a bit painful. I merged this change, but realized we need to
backport the fix to v49. However:

- we don't want to have two versions of the migration (one with a v49
id, one with a v50 id) because then if someone upgrades to 50, then
downgrades to 49, the `rollback` will run and change the type back,
leading to a bug.

- we don't want to push a v51 changeSet ID to v49 or v50, because we
give the user a helpful notice when their database needs a downgrade.
We do this by checking for the latest *executed* migration in the
database and comparing it to the latest migration that Liquibase knows
about, and making sure the executed isn't bigger than the known (e.g.
you can't have executed a v51 migration if it isn't in the local
migration yaml). That would all work fine, except that then we want to
tell you how to downgrade your database, and we use the latest-executed
version for that. So if, for example, someone upgraded from 48 to 49 and
got a v51 changeset, then downgraded back to 48, they would get an error
telling them to run the *v51* jar to roll back their DB.

In this case though, I think it's fine to just move the migration around
to v49, then we can backport it to 49 and 50.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-backport Do not backport this PR to any branch .Team/AdminWebapp Admin and Webapp team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants