Models should be the same as the state in DB after migration
For creation we are using migrations.
We don't have any tests that checks, that our models are up-to-date. Also we are testing it only on sqlite, which couldn't test such things as nullable constraints.
So We should:
1) Use always explicit nullable parameter for columns. There are mistakes in current ceilometer models implementation. (sometimes in schema is nullable=True and in model nullable=False and vise versa). Also at this moment when you see Column description without nullable, you couldn't be sure that is author forget to set nullable='False' or it is really nullable='True'. So the easiest way to track all this and to fix and to avoid such things is to have one rule "always use explicit nullable".
2) Add in __table_args__ indexes and unique constraints
3) Fix all mistakes in models
4) Fix all mistekes in migrations
5) Sync effects of migrations in different backends.
6) Add tests that ensures that models are up-to-date.
This will allow us to find probably some mistake, or missing inexes and make work with db more clean.
Blueprint information
- Status:
- Complete
- Approver:
- Julien Danjou
- Priority:
- Undefined
- Drafter:
- Ann Taraday
- Direction:
- Approved
- Assignee:
- Ann Taraday
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Good progress
- Milestone target:
- next
- Started by
- Julien Danjou
- Completed by
- gordon chung
Related branches
Related bugs
Sprints
Whiteboard
List of models:
⚒alarm
⚒event
⚒meter
⚒project
⚒resource
source
sourceassoc
trait
unique_name
user
Gerrit topic: https:/
Addressed by: https:/
Sync SQLAlchemy models with migrations
Addressed by: https:/
Sync SQLAlchemy models with migrations
Addressed by: https:/
Sync models with migrations.
Addressed by: https:/
Sync models with migrations.
Addressed by: https:/
Add cleanup migration for indexes.
Addressed by: https:/
Fix missing foreign keys.
Addressed by: https:/
Remove extra unique key.
Addressed by: https:/
Add test for migrations.
Addressed by: https:/
Fix wrong UniqueConstraint name
Addressed by: https:/
Extra indexes cleanup
NOTE (herndon)- the events/traits models are changing to include EventType/
Relevant reviews:
https:/
https:/
Addressed by: https:/
Add test for checking models with migrations
Gerrit topic: https:/
Addressed by: https:/
Fix wrong migrations
Addressed by: https:/
Implement testing of migrations
inactive. not worth time. -- gordc