)]}'
{"specs/newton/approved/glance/block-subtractive-operations.rst":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"807b0eabcd062f5d94d429f3c02e343700f3fafa","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  * Column, tables renames"},{"line_number":20,"context_line":"  * Adding constraints"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Long-running data migrations (for example from one column to another)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"All of these should be run when all the services are down. This may not be a"},{"line_number":25,"context_line":"problem for small amount of data, but when we\u0027re talking about thousands of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_3ff35375","line":22,"range":{"start_line":22,"start_character":2,"end_line":22,"end_character":30},"updated":"2016-05-27 18:41:00.000000000","message":"I\u0027m curious how much restriction can we really add here.\n\nFor example, can we really restrict the changes that involve Model\u0027s column \u0027type\u0027 changes? \n\nIn some cases, this may be necessary. One very good example here is https://github.com/openstack/glance/blob/master/glance/db/sqlalchemy/migrate_repo/versions/029_location_meta_data_pickle_to_string.py\n\nSo, I\u0027d suggest you list down the restrictions you propose. We can discuss more over time rather than being pessimistically restrictive about these.","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"9e593585c8d7b6260bcb3bee586876b67902a1c2","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  * Column, tables renames"},{"line_number":20,"context_line":"  * Adding constraints"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Long-running data migrations (for example from one column to another)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"All of these should be run when all the services are down. This may not be a"},{"line_number":25,"context_line":"problem for small amount of data, but when we\u0027re talking about thousands of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_65dea912","line":22,"range":{"start_line":22,"start_character":2,"end_line":22,"end_character":30},"in_reply_to":"9abb7d3a_35e18bff","updated":"2016-05-30 20:45:23.000000000","message":"Thanks Michal for the great feedback. I agree, we need to support DB offline upgrades using one of those or some new novel way.\n\nAnd thanks for the link.\n\nThe author, however, mentions about in line 44 about adopting Nova\u0027s or Cinder\u0027s way of DB upgrades. I am curious what exactly is the though process behind these though. Why do we need blocking if we plan to support those approaches in future. Abhishek?","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"81066bcc73aeca72728c304b8e00f5dee4401487","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  * Column, tables renames"},{"line_number":20,"context_line":"  * Adding constraints"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Long-running data migrations (for example from one column to another)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"All of these should be run when all the services are down. This may not be a"},{"line_number":25,"context_line":"problem for small amount of data, but when we\u0027re talking about thousands of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_35e18bff","line":22,"range":{"start_line":22,"start_character":2,"end_line":22,"end_character":30},"in_reply_to":"9abb7d3a_3ff35375","updated":"2016-05-30 09:46:01.000000000","message":"@Nikhil: In that case you should do it Nova\u0027s or Cinder\u0027s way - through multiple releases by creating a new column. [1] explains it pretty well for Nova.\n\n[1] http://www.danplanet.com/blog/2015/10/07/upgrades-in-nova-database-migrations/","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"3587a65c2b5c0977577896254e856aad74913cc2","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Long-running data migrations (for example from one column to another)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"All of these should be run when all the services are down. This may not be a"},{"line_number":25,"context_line":"problem for small amount of data, but when we\u0027re talking about thousands of"},{"line_number":26,"context_line":"rows, the downtime may be significant."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_99ad8deb","line":24,"updated":"2016-05-23 07:18:51.000000000","message":"Is this part of the rolling upgrades for Glance?","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f1cc281ada0ec0fe111a9961fd2e17854194caec","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Long-running data migrations (for example from one column to another)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"All of these should be run when all the services are down. This may not be a"},{"line_number":25,"context_line":"problem for small amount of data, but when we\u0027re talking about thousands of"},{"line_number":26,"context_line":"rows, the downtime may be significant."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_75d5feb7","line":24,"in_reply_to":"bab6814e_99ad8deb","updated":"2016-05-24 11:49:45.000000000","message":"yes","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"3587a65c2b5c0977577896254e856aad74913cc2","unresolved":false,"context_lines":[{"line_number":41,"context_line":"it excludes migrations from pre-Kilo times, as well as excludes a few"},{"line_number":42,"context_line":"migrations that are already in place and do reasonable things.)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"In general, we would like to adapt the approach followed by `Nova`_"},{"line_number":45,"context_line":"and `Cinder`_."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_be3dd7c5","line":44,"updated":"2016-05-23 07:18:51.000000000","message":"Nova\u0027s approach is a by-product of a lot of considerations that were essential for online migration of database (eventually). Is your goal associated with something similar for glance?","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f1cc281ada0ec0fe111a9961fd2e17854194caec","unresolved":false,"context_lines":[{"line_number":41,"context_line":"it excludes migrations from pre-Kilo times, as well as excludes a few"},{"line_number":42,"context_line":"migrations that are already in place and do reasonable things.)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"In general, we would like to adapt the approach followed by `Nova`_"},{"line_number":45,"context_line":"and `Cinder`_."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_b573e6e6","line":44,"in_reply_to":"bab6814e_be3dd7c5","updated":"2016-05-24 11:49:45.000000000","message":"right, we are planning to work on similar line","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"3587a65c2b5c0977577896254e856aad74913cc2","unresolved":false,"context_lines":[{"line_number":138,"context_line":"Work Items"},{"line_number":139,"context_line":"----------"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"* Add unit test blocking contracting migrations"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_1e950332","line":141,"updated":"2016-05-23 07:18:51.000000000","message":"I guess if you want to go via the Nova way - then you should add a Fixture class and use it as a context manager to your migration block to make sure that all the unit tests oblige to the \u0027alter\u0027 and \u0027drop\u0027 use cases.\n\nI think if you do intend to follow it the same way (which you state above) - it would be a good idea to include that here for the reviewers to have an estimate of the changes.","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f1cc281ada0ec0fe111a9961fd2e17854194caec","unresolved":false,"context_lines":[{"line_number":138,"context_line":"Work Items"},{"line_number":139,"context_line":"----------"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"* Add unit test blocking contracting migrations"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_f5028e0a","line":141,"in_reply_to":"bab6814e_1e950332","updated":"2016-05-24 11:49:45.000000000","message":"In nova they have separate fixture module in the repo so new class was added in fixture.py. Here we are planning to right this class in the same module so I have not added this specifically in work items.","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"807b0eabcd062f5d94d429f3c02e343700f3fafa","unresolved":false,"context_lines":[{"line_number":150,"context_line":"Testing"},{"line_number":151,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"None"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_df02073e","line":153,"range":{"start_line":153,"start_character":0,"end_line":153,"end_character":4},"updated":"2016-05-27 18:41:00.000000000","message":"Please add some testing constraints here.\n\nCan we add a test in grenade to test this?\n\n(Some may not like this approach -\u003e) Something in glance-manage that will ensure we do not make additive migrations?","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"81066bcc73aeca72728c304b8e00f5dee4401487","unresolved":false,"context_lines":[{"line_number":153,"context_line":"None"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Documentation Impact"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"None"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_d5775f38","line":159,"range":{"start_line":156,"start_character":0,"end_line":159,"end_character":4},"updated":"2016-05-30 09:46:01.000000000","message":"You need to add some devref to explain the guidelines to developers.","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"9e593585c8d7b6260bcb3bee586876b67902a1c2","unresolved":false,"context_lines":[{"line_number":153,"context_line":"None"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Documentation Impact"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"None"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9abb7d3a_e5d299ff","line":159,"range":{"start_line":156,"start_character":0,"end_line":159,"end_character":4},"in_reply_to":"9abb7d3a_d5775f38","updated":"2016-05-30 20:45:23.000000000","message":"oh yes! Absolutely needed.\n\nThanks Michal.","commit_id":"4de407f10ad7fa0618d2a90fd6410497b252ae5c"}]}
