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

Release new backup/restore commands to self-hosted #184

Closed
Tracked by #153
azaslavsky opened this issue Aug 9, 2023 · 0 comments · Fixed by getsentry/self-hosted#2407
Closed
Tracked by #153

Release new backup/restore commands to self-hosted #184

azaslavsky opened this issue Aug 9, 2023 · 0 comments · Fixed by getsentry/self-hosted#2407

Comments

@azaslavsky
Copy link

azaslavsky commented Aug 9, 2023

We're going to be making a number of changes to how backup.pys API interacts with the outside world. To support this, we'll keep these changes isolated, until we have a "switch flipping" release that describes the new flags, updates the backup.sh script to use them, properly documents things in the release notes, etc.

Until then, the CLI entry points will remain unchanged, but will wrap the actual functions while passing in temporary OldImportConfig/OldExportConfig objects. These will allow us to toggle the old configurations on (for intermediate releases to self-hosted) and off (for internal testing while we develop the feature).

azaslavsky added a commit to getsentry/sentry that referenced this issue Aug 9, 2023
There are a number of properties of the export system API that we'd like
to eventually change. These include:

- Barring users from manually excluding/including specific models on export
- Only exporting `sentry...` models

To keep the original behavior export system intact until we debut these
changes, this commit hides the behind `OldExportConfig`, which allows
them to be toggled on (for tests) but left off for the actual CLI tool
(for now).

Issue: getsentry/team-ospo#171
Issue: getsentry/team-ospo#184
azaslavsky added a commit to getsentry/sentry that referenced this issue Aug 9, 2023
There are a number of properties of the import system API that we'd like
to eventually change. These include:

- Using `INSERT` rather than `INSERT_OR_UPDATE` semantics for import
  operations.
- Using natural foreign keys (currently only relevant to the
  `sentry.User` model).

To keep the original behavior export system intact until we debut these
changes, this commit hides the behind `OldImportConfig`, which allows
them to be toggled on (for tests) but left off for the actual CLI tool
(for now).

Issue: getsentry/team-ospo#171
Issue: getsentry/team-ospo#184
azaslavsky added a commit to getsentry/sentry that referenced this issue Aug 10, 2023
There are a number of properties of the import system API that we'd like
to eventually change. These include:

- Using `INSERT` rather than `INSERT_OR_UPDATE` semantics for import
  operations.
- Using natural foreign keys (currently only relevant to the
  `sentry.User` model).

To keep the original behavior export system intact until we debut these
changes, this commit hides the behind `OldImportConfig`, which allows
them to be toggled on (for tests) but left off for the actual CLI tool
(for now).

Issue: getsentry/team-ospo#171
Issue: getsentry/team-ospo#184
azaslavsky added a commit to getsentry/sentry that referenced this issue Aug 11, 2023
There are a number of properties of the import system API that we'd like
to eventually change. These include:

- Using `INSERT` rather than `INSERT_OR_UPDATE` semantics for import
operations.
- Using natural foreign keys (currently only relevant to the
`sentry.User` model).

To keep the original behavior export system intact until we debut these
changes, this commit hides the behind `OldImportConfig`, which allows
them to be toggled on (for tests) but left off for the actual CLI tool
(for now).

Issue: getsentry/team-ospo#171
Issue: getsentry/team-ospo#184
azaslavsky added a commit to getsentry/sentry that referenced this issue Aug 11, 2023
There are some fields that are just never going to match. between JSON
backups. One example of these are useremails, which must not be
overwritten from imported data (we will have to use `get_or_create()`
instead).

Issue: getsentry/team-ospo#184
azaslavsky added a commit to getsentry/sentry that referenced this issue Aug 11, 2023
There are some fields that are just never going to match. between JSON
backups. One example of these are useremails, which must not be
overwritten from imported data (we will have to use `get_or_create()`
instead).

Issue: getsentry/team-ospo#184
@chadwhitacre chadwhitacre changed the title Relase new backup/restore commands to self-hosted Release new backup/restore commands to self-hosted Sep 8, 2023
azaslavsky added a commit to getsentry/self-hosted that referenced this issue Sep 19, 2023
azaslavsky added a commit to getsentry/self-hosted that referenced this issue Sep 19, 2023
azaslavsky added a commit to getsentry/sentry that referenced this issue Sep 19, 2023
azaslavsky added a commit to getsentry/sentry that referenced this issue Sep 19, 2023
azaslavsky added a commit to getsentry/self-hosted that referenced this issue Sep 19, 2023
azaslavsky added a commit to getsentry/sentry that referenced this issue Sep 20, 2023
azaslavsky added a commit to getsentry/sentry that referenced this issue Sep 20, 2023
Unlike other models, our strategy of only doing non-destructive inserts
no longer works for global configs with unique identifiers like `Option`
(unique on `key`) and `UserRole` (unique on `name`): there can only be
one global value, so merely inserting the imported value is at best
conflicting and at worst actively buggy. Instead, we by default defer to
existing options when collisions occur, but allow a flag to be passed in
for self-hosted users that are truly sure they want to use the imported
values instead.

Issue: getsentry/team-ospo#184
azaslavsky added a commit to getsentry/sentry that referenced this issue Sep 20, 2023
azaslavsky added a commit to getsentry/sentry that referenced this issue Sep 20, 2023
Unlike other models, our strategy of only doing non-destructive inserts
no longer works for global configs with unique identifiers like `Option`
(unique on `key`) and `UserRole` (unique on `name`): there can only be
one global value, so merely inserting the imported value is at best
conflicting and at worst actively buggy. Instead, we by default defer to
existing options when collisions occur, but allow a flag to be passed in
for self-hosted users that are truly sure they want to use the imported
values instead.

Issue: getsentry/team-ospo#184
azaslavsky added a commit to getsentry/self-hosted that referenced this issue Sep 20, 2023
hubertdeng123 pushed a commit to getsentry/self-hosted that referenced this issue Sep 20, 2023
tcorej pushed a commit to vectary/sentry-self-hosted that referenced this issue Apr 20, 2024
jamesbaber1 pushed a commit to Algo-Trading-Tools/sentry that referenced this issue Jun 20, 2024
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 a pull request may close this issue.

1 participant