opengisch / pum

Postgres Upgrades Manager
GNU General Public License v2.0
30 stars 7 forks source link

Add a `pum current_version` command #94

Open olivierdalang opened 3 years ago

olivierdalang commented 3 years ago

When a user wants to know the current version of his datamodel, he can do pum info ..., which works well but requires quite a bit of interpretation to know the state of the DB (see sample output below).

Ideally we'd have something like

# when up to date (exit code 0)
> pum current_version -p qgep_build_pum -t qgep_sys.pum_info -d /src/delta
1.5.3

# when not up to date (exit code 0)
> pum current_version -p qgep_build_pum -t qgep_sys.pum_info -d /src/delta
1.5.0 [unaplied updates available]

# when inconsistent state such as unapplied past deltas or applied migrations not found in deltas (exit code != 0)
> pum current_version -p qgep_build_pum -t qgep_sys.pum_info -d /src/delta
1.5.3 [INCONSISTENCIES DETECTED]
# sample output
> pum info -p qgep_build_pum -t qgep_sys.pum_info -d /src/delta
delta files in dir:  /src/delta
| Version | Name                                                | Type      | Status  |
| ------- | --------------------------------------------------- | --------- | ------- |
| 1.0.1   | prefix_reach_view                                   | delta sql | Applied |
| 1.0.1   | prefix_wastewater_structure_view                    | delta sql | Applied |
| 1.0.1   | view_for_files                                      | post sql  | Applied |
| 1.1.0   | fix_dictionary_od_table                             | delta sql | Applied |
| 1.1.0   | network_tracking_geom_casting                       | delta sql | Applied |
| 1.1.0   | vw_ogranisation_geom_cast                           | delta sql | Applied |
| 1.1.0   | vw_qgep_wastewater_structure_fixes                  | delta sql | Applied |
| 1.1.0   | quarantine                                          | post sql  | Applied |
| 1.1.1   | add_reach_direction_change                          | delta sql | Applied |
| 1.1.1   | default_value_vw_wastewater_node                    | delta sql | Applied |
| 1.1.1   | quarantine_calculations                             | delta sql | Applied |
| 1.1.1   | reach_point_update_trigger                          | delta sql | Applied |
| 1.1.1   | symbology_drop_triggers                             | delta sql | Applied |
| 1.1.1   | symbology_update                                    | delta sql | Applied |
| 1.1.1   | fix_depth_after_node_update                         | post sql  | Applied |
| 1.2.0   | quarantine_type_update                              | delta sql | Applied |
| 1.2.0   | reach_on_delete_rule                                | delta sql | Applied |
| 1.2.0   | geometry_altitude                                   | post sql  | Applied |
| 1.2.1   | fix_vw_qgep_wastewater_structure                    | delta sql | Applied |
| 1.3.0   | import_trigger                                      | delta sql | Applied |
| 1.3.0   | remove_old_views                                    | post sql  | Applied |
| 1.3.1   | delete_channel_when_no_reach                        | delta sql | Applied |
| 1.3.2   | update_audit                                        | delta sql | Applied |
| 1.4.0   | add_main_wastewater_node                            | delta sql | Applied |
| 1.4.0   | catchment_area_precision                            | delta sql | Applied |
| 1.4.0   | geometry_not_null_constraints                       | delta sql | Applied |
| 1.4.0   | import_views                                        | delta sql | Applied |
| 1.4.0   | increase_maintenance_event_base_data_length         | delta sql | Applied |
| 1.4.0   | municipality_precision                              | delta sql | Applied |
| 1.4.0   | swmm_views                                          | delta sql | Applied |
| 1.4.0   | update_wastewater_structure_label_with_bottom_level | delta sql | Applied |
| 1.4.1   | swmm_catchment_areas                                | delta sql | Applied |
| 1.5.0   | fix_network_tracking_views                          | delta sql | Applied |
| 1.5.0   | labelling                                           | delta sql | Applied |
| 1.5.1   | fix_network_tracking_views                          | delta sql | Applied |
| 1.5.2   | fix_network_tracking_views                          | delta sql | Applied |
| 1.5.3   | fix_vl_value_en_digital_video                       | delta sql | Applied |
| 1.5.3   | fix_ws_output_labels                                | delta sql | Applied |

Applied upgrades in database
| Version | Name                                                | Type      | Installed by | Installed on               | Status  |
| ------- | --------------------------------------------------- | --------- | ------------ | -------------------------- | ------- |
| 1.0.0   | baseline                                            | baseline  | postgres     | 2020-10-22 10:54:03.575262 | Success |
| 1.0.1   | prefix_reach_view                                   | delta sql | postgres     | 2020-10-22 10:54:38.734177 | Success |
| 1.0.1   | prefix_wastewater_structure_view                    | delta sql | postgres     | 2020-10-22 10:54:38.770984 | Success |
| 1.0.1   | view_for_files                                      | post sql  | postgres     | 2020-10-22 10:54:38.777768 | Success |
| 1.1.0   | fix_dictionary_od_table                             | delta sql | postgres     | 2020-10-22 10:54:38.783111 | Success |
| 1.1.0   | network_tracking_geom_casting                       | delta sql | postgres     | 2020-10-22 10:54:42.123984 | Success |
| 1.1.0   | vw_ogranisation_geom_cast                           | delta sql | postgres     | 2020-10-22 10:54:42.132747 | Success |
| 1.1.0   | vw_qgep_wastewater_structure_fixes                  | delta sql | postgres     | 2020-10-22 10:54:42.153684 | Success |
| 1.1.0   | quarantine                                          | post sql  | postgres     | 2020-10-22 10:54:42.175908 | Success |
| 1.1.1   | add_reach_direction_change                          | delta sql | postgres     | 2020-10-22 10:54:42.181055 | Success |
| 1.1.1   | default_value_vw_wastewater_node                    | delta sql | postgres     | 2020-10-22 10:54:42.185682 | Success |
| 1.1.1   | quarantine_calculations                             | delta sql | postgres     | 2020-10-22 10:54:42.192797 | Success |
| 1.1.1   | reach_point_update_trigger                          | delta sql | postgres     | 2020-10-22 10:54:42.197411 | Success |
| 1.1.1   | symbology_drop_triggers                             | delta sql | postgres     | 2020-10-22 10:54:42.202028 | Success |
| 1.1.1   | symbology_update                                    | delta sql | postgres     | 2020-10-22 10:54:44.349976 | Success |
| 1.1.1   | fix_depth_after_node_update                         | post sql  | postgres     | 2020-10-22 10:54:44.356392 | Success |
| 1.2.0   | quarantine_type_update                              | delta sql | postgres     | 2020-10-22 10:54:44.376889 | Success |
| 1.2.0   | reach_on_delete_rule                                | delta sql | postgres     | 2020-10-22 10:54:44.383593 | Success |
| 1.2.0   | geometry_altitude                                   | post sql  | postgres     | 2020-10-22 10:54:48.693286 | Success |
| 1.2.1   | fix_vw_qgep_wastewater_structure                    | delta sql | postgres     | 2020-10-22 10:54:48.697957 | Success |
| 1.3.0   | import_trigger                                      | delta sql | postgres     | 2020-10-22 10:54:48.703635 | Success |
| 1.3.0   | remove_old_views                                    | post sql  | postgres     | 2020-10-22 10:54:48.728119 | Success |
| 1.3.1   | delete_channel_when_no_reach                        | delta sql | postgres     | 2020-10-22 10:54:48.734484 | Success |
| 1.3.2   | update_audit                                        | delta sql | postgres     | 2020-10-22 10:54:48.750707 | Success |
| 1.4.0   | add_main_wastewater_node                            | delta sql | postgres     | 2020-10-22 10:54:49.320191 | Success |
| 1.4.0   | catchment_area_precision                            | delta sql | postgres     | 2020-10-22 10:54:49.381047 | Success |
| 1.4.0   | geometry_not_null_constraints                       | delta sql | postgres     | 2020-10-22 10:54:49.390229 | Success |
| 1.4.0   | import_views                                        | delta sql | postgres     | 2020-10-22 10:54:49.394912 | Success |
| 1.4.0   | increase_maintenance_event_base_data_length         | delta sql | postgres     | 2020-10-22 10:54:49.403842 | Success |
| 1.4.0   | municipality_precision                              | delta sql | postgres     | 2020-10-22 10:54:49.417935 | Success |
| 1.4.0   | swmm_views                                          | delta sql | postgres     | 2020-10-22 10:54:49.446182 | Success |
| 1.4.0   | update_wastewater_structure_label_with_bottom_level | delta sql | postgres     | 2020-10-22 10:54:49.452476 | Success |
| 1.4.1   | swmm_catchment_areas                                | delta sql | postgres     | 2020-10-22 10:54:49.467513 | Success |
| 1.5.0   | fix_network_tracking_views                          | delta sql | postgres     | 2020-10-22 10:54:49.511598 | Success |
| 1.5.0   | labelling                                           | delta sql | postgres     | 2020-10-22 10:54:52.067718 | Success |
| 1.5.1   | fix_network_tracking_views                          | delta sql | postgres     | 2020-10-22 10:54:52.072336 | Success |
| 1.5.2   | fix_network_tracking_views                          | delta sql | postgres     | 2020-10-22 10:54:52.077275 | Success |
| 1.5.3   | fix_vl_value_en_digital_video                       | delta sql | postgres     | 2020-10-22 10:54:52.081604 | Success |
| 1.5.3   | fix_ws_output_labels                                | delta sql | postgres     | 2020-10-22 10:54:52.086275 | Success |
ponceta commented 1 year ago

This would be great to have for data managers.