-
Notifications
You must be signed in to change notification settings - Fork 79
perf(models): change extra_data to JSONB
#360
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
Conversation
50709cb to
ec48cd9
Compare
ec48cd9 to
80d7395
Compare
80d7395 to
826af3a
Compare
62e33fd to
575443e
Compare
invenio_oauthclient/__init__.py
Outdated
| from .proxies import current_oauthclient | ||
|
|
||
| __version__ = "5.3.1" | ||
| __version__ = "5.4.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, we need to consider this a breaking change and bump it to v6, otherwise this version will be installed in InvenioRDM v13 without running the Alembic recipe.
Can you please change it?
Can you please add a line explaining this in the vNext in the docs repo? Ty!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, will do. I guess we can aim to also include #328 in 6.0.0? So I will include docs for both in the vNext release notes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, will do. I guess we can aim to also include #328 in 6.0.0? So I will include docs for both in the
vNextrelease notes.
Yes, because it has a DB upgrade, so it is not a transparent installation that only requires to update the dependencies' versions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've updated the version and added the docs here inveniosoftware/docs-invenio-rdm#884
* `JSONB` is a newer and more efficient format for storing JSON in PostgreSQL. Compared to `JSON`, it offers significantly faster querying and indexing support (but is very slightly slower to input). The JSON is decomposed into a binary format rather than being stored in plaintext. * From a high-level perspective, the access of the data is unchanged in Python so this is not a breaking change. However, the new column type supports more querying operations which could be used in the future. * Migrating the column type is quite easy for small tables but can cause performance and stability issues for larger ones. Therefore, a default Alembic migration has been included for the vast majority of use cases, as well as a step-by-step alternative guide for larger instances. Instances with more than ~50k rows in `oauthclient_remoteaccount` are advised not to use the Alembic migration and to instead follow the upgrade guide.
* This matches up with inveniosoftware#360 which we are aiming to release at the same time
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
* Bumping the major version of invenio-oauthclient to 6.0.0 * This includes inveniosoftware/invenio-oauthclient#360 which is not necessarily breaking but requires a manual DB migration for very large instances, as documented in the module's upgrade guide. * Further changes are yet come in v6 before RDM v14, such as inveniosoftware/invenio-oauthclient#328.
Related (vaguely) to inveniosoftware/invenio-github#190, but is not a dependency.
Important: we are aiming to release this at the same time as #328. When we merge, we need to align the DB migrations, but still keep them as 2 separate migrations so this one can be run manually. The other migration does not need to be run manually in any scenario.
JSONBis a newer and more efficient format for storing JSON in PostgreSQL. Compared toJSON, it offers significantly faster querying and indexing support (but is very slightly slower to input). The JSON is decomposed into a binary format rather than being stored in plaintext.From a high-level perspective, the access of the data is unchanged in Python so this is not a breaking change. However, the new column type supports more querying operations which could be used in the future.
Migrating the column type is quite easy for small tables but can cause performance and stability issues for larger ones. Therefore, a default Alembic migration has been included for the vast majority of use cases, as well as a step-by-step alternative guide for larger instances. Instances with more than ~50k rows in
oauthclient_remoteaccountare advised not to use the Alembic migration and to instead follow the upgrade guide.