-
Notifications
You must be signed in to change notification settings - Fork 14.3k
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 alembic autogeneration and rename mismatching constraints #39032
Conversation
bd15707
to
c43f01b
Compare
airflow/migrations/versions/0142_2_10_0_update_missing_constraints.py
Outdated
Show resolved
Hide resolved
airflow/migrations/versions/0142_2_10_0_update_missing_constraints.py
Outdated
Show resolved
Hide resolved
e540be2
to
0d7c1f6
Compare
The |
471afcb
to
bb7fd31
Compare
Should be fixed now |
7dcdcf8
to
aa441ce
Compare
aa441ce
to
ce50034
Compare
ce50034
to
5fd4b44
Compare
Previously, I added the |
airflow/migrations/versions/0142_2_9_2_fix_inconsistency_between_ORM_and_migration_files.py
Outdated
Show resolved
Hide resolved
airflow/migrations/versions/0142_2_9_2_fix_inconsistency_between_ORM_and_migration_files.py
Show resolved
Hide resolved
airflow/migrations/versions/0142_2_9_2_fix_inconsistency_between_ORM_and_migration_files.py
Show resolved
Hide resolved
The alembic autogeneration is not working as expected and the tests were detecting it because we use DBs created from the ORM to run tests. When a change is made in the ORM and the ORM is used to initialize the database for tests, the changes in the ORM will appear the same with what is in the migration file. To be sure that both match, we have to compare the database generated using the migration file to the database that could be created from the ORM. To fix this, I added 'use_migration_file' arg to resetdb function and updated the db reset in conftest to use migration file during test db reset. As part of this fix, I also updated mismatching constraint names. The update was done in the migration file instead of the ORM as I take the ORM as the source of truth. New airflow users create their DB from the ORM with the correct naming because we have a naming convention. Old airflow users would have to upgrade to use these names from ORM instead of the reverse. I also removed the `sqlite_sequence` table which is specific to sqlite and not needed for anything. An alternative would be to add `sqlite_autoincrement` to table args in the ORM and migration but this table is not that useful.
…ration-files an option in db commands
…use-migration-files an option in db commands
Co-authored-by: Jed Cunningham <66968678+jedcunningham@users.noreply.github.com>
4ef3b27
to
93357c3
Compare
* Fix alembic autogeneration and rename mismatching constraints The alembic autogeneration is not working as expected and the tests were detecting it because we use DBs created from the ORM to run tests. When a change is made in the ORM and the ORM is used to initialize the database for tests, the changes in the ORM will appear the same with what is in the migration file. To be sure that both match, we have to compare the database generated using the migration file to the database that could be created from the ORM. To fix this, I added 'use_migration_file' arg to resetdb function and updated the db reset in conftest to use migration file during test db reset. As part of this fix, I also updated mismatching constraint names. The update was done in the migration file instead of the ORM as I take the ORM as the source of truth. New airflow users create their DB from the ORM with the correct naming because we have a naming convention. Old airflow users would have to upgrade to use these names from ORM instead of the reverse. I also removed the `sqlite_sequence` table which is specific to sqlite and not needed for anything. An alternative would be to add `sqlite_autoincrement` to table args in the ORM and migration but this table is not that useful. * fixup! Fix alembic autogeneration and rename mismatching constraints * fixup! fixup! Fix alembic autogeneration and rename mismatching constraints * fixup! fixup! fixup! Fix alembic autogeneration and rename mismatching constraints * Fix mysql, sqlite and issue with cascading deletes * fixup! Fix mysql, sqlite and issue with cascading deletes * Fix migration for mysql * Fix clear_number ORM server_default * Fix type change for mysql * Fix constraints for sqlite and move migration to 2.9.2 * Fix sqlite constraints update and ignore session_session_id_uq index * Fix processor_subdir in the migration file for mysql and make use-migration-files an option in db commands * fixup! Fix processor_subdir in the migration file for mysql and make use-migration-files an option in db commands * Apply suggestions from code review Co-authored-by: Jed Cunningham <66968678+jedcunningham@users.noreply.github.com> --------- Co-authored-by: Jed Cunningham <66968678+jedcunningham@users.noreply.github.com> (cherry picked from commit 00f0969)
* Fix alembic autogeneration and rename mismatching constraints The alembic autogeneration is not working as expected and the tests were detecting it because we use DBs created from the ORM to run tests. When a change is made in the ORM and the ORM is used to initialize the database for tests, the changes in the ORM will appear the same with what is in the migration file. To be sure that both match, we have to compare the database generated using the migration file to the database that could be created from the ORM. To fix this, I added 'use_migration_file' arg to resetdb function and updated the db reset in conftest to use migration file during test db reset. As part of this fix, I also updated mismatching constraint names. The update was done in the migration file instead of the ORM as I take the ORM as the source of truth. New airflow users create their DB from the ORM with the correct naming because we have a naming convention. Old airflow users would have to upgrade to use these names from ORM instead of the reverse. I also removed the `sqlite_sequence` table which is specific to sqlite and not needed for anything. An alternative would be to add `sqlite_autoincrement` to table args in the ORM and migration but this table is not that useful. * fixup! Fix alembic autogeneration and rename mismatching constraints * fixup! fixup! Fix alembic autogeneration and rename mismatching constraints * fixup! fixup! fixup! Fix alembic autogeneration and rename mismatching constraints * Fix mysql, sqlite and issue with cascading deletes * fixup! Fix mysql, sqlite and issue with cascading deletes * Fix migration for mysql * Fix clear_number ORM server_default * Fix type change for mysql * Fix constraints for sqlite and move migration to 2.9.2 * Fix sqlite constraints update and ignore session_session_id_uq index * Fix processor_subdir in the migration file for mysql and make use-migration-files an option in db commands * fixup! Fix processor_subdir in the migration file for mysql and make use-migration-files an option in db commands * Apply suggestions from code review Co-authored-by: Jed Cunningham <66968678+jedcunningham@users.noreply.github.com> --------- Co-authored-by: Jed Cunningham <66968678+jedcunningham@users.noreply.github.com> (cherry picked from commit 00f0969)
The alembic autogeneration is not working as expected and the tests were not detecting it because we use DBs created from the ORM to run tests.
When a change is made in the ORM and the ORM is used to initialize the database for tests, the changes in the ORM will appear the same with what is in the migration file. To be sure that both match, we have to compare the database generated using the migration file to the database that could be created from the ORM.
To fix this, I added 'use_migration_file' arg to resetdb function and updated the db reset in conftest to use migration file during test db reset.
As part of this fix, I also updated mismatching constraint names. The update was done in the migration file instead of the ORM as I take the ORM as the source of truth. New airflow users create their DB from the ORM with the correct naming because we have a naming convention. Old airflow users would have to upgrade to use these names from ORM instead of the reverse.
I also removed the
sqlite_sequence
table which is specific to sqlite and not needed for anything. An alternative would be to addsqlite_autoincrement
to table args in the ORM and migration but this table is not that useful.