-
Notifications
You must be signed in to change notification settings - Fork 126
chore(organization): Not null organization_id #3687
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
ae4844a
to
ab4d121
Compare
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.
😍😍😍
Amazing job!
Just in case, are we going to add a not null constraint in the db?
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.
@vincent-pochet having the organization_id associated in every table is a very smart way to optimize the queries and make the code simpler. Awesome job man 💪
Thanks! Yes definitely, that will be the last step for this change |
c249a8a
to
a6813e7
Compare
a6813e7
to
f177322
Compare
## Context As we are planing to release the ["not null organization" pull request](#3687), it was decided to take this as an opportunity to squash the old database migration into a single migration file, to reduce the number of migrations. Related to #3829 ## Description Lago version 1.20.0 was used as a reference to squash the migrations. - All migrations from previous versions are merged in a single `InitialMigration` migration file. - It uses the SQL format to preserve the orders and make sure the migration test workflow continue to pass on Github no matter if the structure comes from previous migrations or from this file. - It reuse the previous last migration version `20250122112050` to make sure it will not be executed on instance running v1.20.0 or later. - It adds a small check to fail running the migration if an upgrade is made from a version prior to 1.20.0 to the bridge release containing this change - All squashed migrations files are removed
Reverts #3687. We want to exclude that from the `1.30` self-hosted release. Will be included on the `1.31` release.
…#3842) Reapply #3839 that was rollbacked to allow a non blocking release ## Context As we are planing to release the ["not null organization" pull request](#3687), it was decided to take this as an opportunity to squash the old database migration into a single migration file, to reduce the number of migrations. Related to #3829 ## Description Lago version 1.20.0 was used as a reference to squash the migrations. - All migrations from previous versions are merged in a single `InitialMigration` migration file. - It uses the SQL format to preserve the orders and make sure the migration test workflow continue to pass on Github no matter if the structure comes from previous migrations or from this file. - It reuse the previous last migration version `20250122112050` to make sure it will not be executed on instance running v1.20.0 or later. - It adds a small check to fail running the migration if an upgrade is made from a version prior to 1.20.0 to the bridge release containing this change - All squashed migrations files are removed
…3879) ## Context Now that we are done with #3687 to add a presence validation on the organization_id field), let's add a proper NOT NULL constraint at the DB level! ## Description This PR adds: - The not null constraint on `theapplied_usage_thresholds` table - Add new `not_null_organization_id` rails generator to make it easier to create the migration files A lot of new migrations are coming :)
…#3842) Reapply #3839 that was rollbacked to allow a non blocking release ## Context As we are planing to release the ["not null organization" pull request](#3687), it was decided to take this as an opportunity to squash the old database migration into a single migration file, to reduce the number of migrations. Related to #3829 ## Description Lago version 1.20.0 was used as a reference to squash the migrations. - All migrations from previous versions are merged in a single `InitialMigration` migration file. - It uses the SQL format to preserve the orders and make sure the migration test workflow continue to pass on Github no matter if the structure comes from previous migrations or from this file. - It reuse the previous last migration version `20250122112050` to make sure it will not be executed on instance running v1.20.0 or later. - It adds a small check to fail running the migration if an upgrade is made from a version prior to 1.20.0 to the bridge release containing this change - All squashed migrations files are removed
## Context This PR is part of the epic to add `organization_id` on all tables of the application ## Description The current one is removing the `optional` attribute on all `belongs_to :organization` relations. In a next step the presence will be enforced at database level with a not null constraint The PR also updates the relations from customer and organization table to make sure it uses the organization_id column. **NOTE**: Since this change will require all tables to be updated before the release, a migration guide will be added (See https://getlago.com/docs/guide/migration/migration-to-v1.29.0 as an example). The guide will state that customer will have to first run the [migrations:fill_organization_id rake task](https://github.com/getlago/lago-api/blob/main/lib/tasks/migrations/organization_id.rake)
## Context As we are planing to release the ["not null organization" pull request](#3687), it was decided to take this as an opportunity to squash the old database migration into a single migration file, to reduce the number of migrations. Related to #3829 ## Description Lago version 1.20.0 was used as a reference to squash the migrations. - All migrations from previous versions are merged in a single `InitialMigration` migration file. - It uses the SQL format to preserve the orders and make sure the migration test workflow continue to pass on Github no matter if the structure comes from previous migrations or from this file. - It reuse the previous last migration version `20250122112050` to make sure it will not be executed on instance running v1.20.0 or later. - It adds a small check to fail running the migration if an upgrade is made from a version prior to 1.20.0 to the bridge release containing this change - All squashed migrations files are removed
Reverts #3687. We want to exclude that from the `1.30` self-hosted release. Will be included on the `1.31` release.
…#3842) Reapply #3839 that was rollbacked to allow a non blocking release ## Context As we are planing to release the ["not null organization" pull request](#3687), it was decided to take this as an opportunity to squash the old database migration into a single migration file, to reduce the number of migrations. Related to #3829 ## Description Lago version 1.20.0 was used as a reference to squash the migrations. - All migrations from previous versions are merged in a single `InitialMigration` migration file. - It uses the SQL format to preserve the orders and make sure the migration test workflow continue to pass on Github no matter if the structure comes from previous migrations or from this file. - It reuse the previous last migration version `20250122112050` to make sure it will not be executed on instance running v1.20.0 or later. - It adds a small check to fail running the migration if an upgrade is made from a version prior to 1.20.0 to the bridge release containing this change - All squashed migrations files are removed
…3879) ## Context Now that we are done with #3687 to add a presence validation on the organization_id field), let's add a proper NOT NULL constraint at the DB level! ## Description This PR adds: - The not null constraint on `theapplied_usage_thresholds` table - Add new `not_null_organization_id` rails generator to make it easier to create the migration files A lot of new migrations are coming :)
Context
This PR is part of the epic to add
organization_id
on all tables of the applicationDescription
The current one is removing the
optional
attribute on allbelongs_to :organization
relations. In a next step the presence will be enforced at database level with a not null constraintThe PR also updates the relations from customer and organization table to make sure it uses the organization_id column.
NOTE: Since this change will require all tables to be updated before the release, a migration guide will be added (See https://getlago.com/docs/guide/migration/migration-to-v1.29.0 as an example). The guide will state that customer will have to first run the migrations:fill_organization_id rake task