)]}'
{"specs/no-downward-sql-migration.rst":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"8a47976fffedeb1d261a636f9b6acade55e5074a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"The proposed change is as follows:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Eliminate the downgrade option(s) from the CLI tools utilized for"},{"line_number":32,"context_line":"  schema migrations"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* Document best practices on restoring to a previous schema version"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_8f30fe9f","line":32,"updated":"2015-02-08 15:36:10.000000000","message":"keystone-manage db_sync doesn\u0027t have a downgrade option... you can enter a migration # earlier than the current one.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0ef0ce27c62a62b96e6dd229542f36b135f4204f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"The proposed change is as follows:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Eliminate the downgrade option(s) from the CLI tools utilized for"},{"line_number":32,"context_line":"  schema migrations"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* Document best practices on restoring to a previous schema version"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_074aee82","line":32,"in_reply_to":"da86d52c_48034573","updated":"2015-02-17 07:03:13.000000000","message":"@chris, That would be the plan.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"479c2791f2e0f484e24a3d6d9da274c453688ee6","unresolved":false,"context_lines":[{"line_number":29,"context_line":"The proposed change is as follows:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Eliminate the downgrade option(s) from the CLI tools utilized for"},{"line_number":32,"context_line":"  schema migrations"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* Document best practices on restoring to a previous schema version"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_ceed9327","line":32,"in_reply_to":"da86d52c_8f30fe9f","updated":"2015-02-09 03:40:13.000000000","message":"I was not specific in the wording, but iirc *all* CLI tools work as you\u0027ve described.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"01f6bf9547974f6f331f042d3b01c162c4cfeab8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"The proposed change is as follows:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Eliminate the downgrade option(s) from the CLI tools utilized for"},{"line_number":32,"context_line":"  schema migrations"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* Document best practices on restoring to a previous schema version"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_48034573","line":32,"in_reply_to":"da86d52c_ceed9327","updated":"2015-02-09 14:47:42.000000000","message":"So would we add code that rejects a migration # earlier than the current one?","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":9500,"name":"Matt Fischer","email":"matt@mattfischer.com","username":"mfisch"},"change_message_id":"417583803fe54784451b41ef2b31db2b7d8609be","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  schema migrations"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* Document best practices on restoring to a previous schema version"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Stop support of migrations with downgrade functions across all"},{"line_number":37,"context_line":"  projects"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_2a3380f7","line":35,"updated":"2015-02-08 18:34:23.000000000","message":"This needs to include what steps to take BEFORE doing migration (before it\u0027s too late)","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"479c2791f2e0f484e24a3d6d9da274c453688ee6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  schema migrations"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* Document best practices on restoring to a previous schema version"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Stop support of migrations with downgrade functions across all"},{"line_number":37,"context_line":"  projects"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_eef25705","line":35,"in_reply_to":"da86d52c_2a3380f7","updated":"2015-02-09 03:40:13.000000000","message":"Yes. Agreed (I can expand on this if we need another patchset).","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"817b1c13079a8403d0f1ea8d16d2549733ef939c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* Stop support of migrations with downgrade functions across all"},{"line_number":37,"context_line":"  projects"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* Do not add future migrations with downgrade functions"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_8509bfdf","line":39,"range":{"start_line":39,"start_character":13,"end_line":39,"end_character":19},"updated":"2015-02-08 20:39:40.000000000","message":"I think there needs to be some discussion about change of state here if we\u0027re going to have a blanket policy. What if instances in nova are created between and upgrade and the decision to revert to a backup? What happens to those instances? What about changes in the configuration of instances during that period? Do we revert them as well?\n\nI am sure there are other OpenStack services which have similar state questions, and I feel like a blanket policy which doesn\u0027t explore these issues wont help us much.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a12f3c9e8d209ca5adb2d24f28051f1f7268433e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* Stop support of migrations with downgrade functions across all"},{"line_number":37,"context_line":"  projects"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* Do not add future migrations with downgrade functions"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_ae98361c","line":39,"in_reply_to":"da86d52c_08e22dd5","updated":"2015-02-09 21:45:51.000000000","message":"@Chris: The recommendation there would be to simply restore from a backup taken immediately preceding the schema upgrade.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"01f6bf9547974f6f331f042d3b01c162c4cfeab8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* Stop support of migrations with downgrade functions across all"},{"line_number":37,"context_line":"  projects"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* Do not add future migrations with downgrade functions"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_08e22dd5","line":39,"in_reply_to":"da86d52c_6e8f4776","updated":"2015-02-09 14:47:42.000000000","message":"What about the scenario where a nova upgrade requires a schema upgrade, and something in the new nova version is found to be broken?  Technically that\u0027s not a \"failed schema upgrade\" since the schema upgrade itself worked, but there\u0027s no way to back out the new nova version without reverting to the older database schema.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"479c2791f2e0f484e24a3d6d9da274c453688ee6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* Stop support of migrations with downgrade functions across all"},{"line_number":37,"context_line":"  projects"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* Do not add future migrations with downgrade functions"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_6e8f4776","line":39,"in_reply_to":"da86d52c_8509bfdf","updated":"2015-02-09 03:40:13.000000000","message":"Based upon the conversations in the ML topic, the answer is fail forwards on the schema migrations. A downgrade in cases where there was a lot of data manipulation could result in the same net effect: needing to perform a full restore.\n\nIn what scenario would you perform a downgrade? Before we explore the \"what do we do with the data if we ran with an updated schema and then decided to downgrade the schema for whatever reason\", lets discuss what the real usecase and demand for a schema downgrade is (regardless of the mechanism used for the downgrade).\n\nThe case that comes to mind for me is:\n\n* Failed schema upgrade. A downgrade would be very scary in this case. There should be no \"new\" instances in this case [hopefully you\u0027ve quiesced your writes before trying to update your schema]\n\nOne we\u0027ve identified the other cases where a downgrade would result in these reversions of (for example) instances, we can examine the best way to handle the data.\n\nI want to avoid exploring \"what do we do with this data\" without having some context to work from in that conversation. \n\nMy answer is currently \u0027if something is serious enough to justify rolling back the schema, I don\u0027t trust the data that has been written since the upgrade and I would revert that data to my \"known good\" state\u0027.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":3189,"name":"Chet Burgess","email":"cfb@metacloud.com","username":"cfb-n"},"change_message_id":"c1ea092e5212279c5989096124c05367fcc79354","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* Stop support of migrations with downgrade functions across all"},{"line_number":37,"context_line":"  projects"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* Do not add future migrations with downgrade functions"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_3d9e1055","line":39,"in_reply_to":"da86d52c_8509bfdf","updated":"2015-02-10 18:21:25.000000000","message":"Michael, its unclear to me that an SQL downgrade will meet these needs. For instance, if we launch a new instance with new features and then downgrade what happens to the features on those VMs? As long as it stays running its probably ok, but if what happens if you restart it? How will those new features behave in a downgraded scenario?\n\nHonestly I think downgrades are just as dangerous as a DB rollback. Neither is a one size fits all solution, both have issues and corner cases you will run into.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f358e507d25b59c2dfd800b6926eec41a5548b9e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* Update oslo.db to return appropriate errors when trying to perform"},{"line_number":61,"context_line":"  a schema downgrade"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* (all core teams) Do not accept new migrations that include downgrade"},{"line_number":64,"context_line":"  functions"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_2d4095a4","line":63,"updated":"2015-02-10 22:09:56.000000000","message":"Should we also clean up old downgrade rules since now they are of no value?","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0ef0ce27c62a62b96e6dd229542f36b135f4204f","unresolved":false,"context_lines":[{"line_number":60,"context_line":"* Update oslo.db to return appropriate errors when trying to perform"},{"line_number":61,"context_line":"  a schema downgrade"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* (all core teams) Do not accept new migrations that include downgrade"},{"line_number":64,"context_line":"  functions"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_c757f624","line":63,"in_reply_to":"da86d52c_2d4095a4","updated":"2015-02-17 07:03:13.000000000","message":"I will leave that to the other teams to determine. Ideally that can be part of the removal of downgrade unit tests, but there is nothing saying that removal is needed. as migrations progress the downgrades will be less relevant / fall off (in the case of the squash nova and other projects do).","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":9500,"name":"Matt Fischer","email":"matt@mattfischer.com","username":"mfisch"},"change_message_id":"417583803fe54784451b41ef2b31db2b7d8609be","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* (all core teams) Do not accept new migrations that include downgrade"},{"line_number":64,"context_line":"  functions"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Dependencies"},{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_6a4c9877","line":65,"updated":"2015-02-08 18:34:23.000000000","message":"* drop all downgrade unit tests (if any such tests exist)","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"fce7e912cc5fb29a413172736532f4dbfd8845ad","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* (all core teams) Do not accept new migrations that include downgrade"},{"line_number":64,"context_line":"  functions"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Dependencies"},{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_ee0ed7e4","line":65,"in_reply_to":"da86d52c_6a4c9877","updated":"2015-02-09 03:43:00.000000000","message":"Will add next patchset.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8312a9d521bc474d7ba19bc7c1f3925613d3fc9b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"   openstack-dev/2015-January/055586.html\u003e`_"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"2. `openstack-operators mailing list topic \u003chttp://lists.openstack.org/"},{"line_number":78,"context_line":"   pipermail/openstack-operators/2015-January/006082.html\u003e`_"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note::"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_32de0d12","line":78,"updated":"2015-02-11 17:21:27.000000000","message":"If you create another draft, you could link to http://docs.openstack.org/openstack-ops/content/ops_upgrades-roll-back.html (or wherever the source for that is) as the current recommended practices.","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0ef0ce27c62a62b96e6dd229542f36b135f4204f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"   openstack-dev/2015-January/055586.html\u003e`_"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"2. `openstack-operators mailing list topic \u003chttp://lists.openstack.org/"},{"line_number":78,"context_line":"   pipermail/openstack-operators/2015-January/006082.html\u003e`_"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note::"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_273452fa","line":78,"in_reply_to":"da86d52c_32de0d12","updated":"2015-02-17 07:03:13.000000000","message":"Done in next patch (there needs to be one more to address a few of these comments).","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0106bac988a15ccce8b974c9ebdd55740128ee28","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"2. `openstack-operators mailing list topic \u003chttp://lists.openstack.org/"},{"line_number":78,"context_line":"   pipermail/openstack-operators/2015-January/006082.html\u003e`_"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note::"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"  This work is licensed under a Creative Commons Attribution 3.0 Unported License."}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_0d12f108","line":79,"updated":"2015-02-10 22:00:41.000000000","message":"Here\u0027s handy reference from the docs: http://docs.openstack.org/openstack-ops/content/ops_upgrades-roll-back.html","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0ef0ce27c62a62b96e6dd229542f36b135f4204f","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"2. `openstack-operators mailing list topic \u003chttp://lists.openstack.org/"},{"line_number":78,"context_line":"   pipermail/openstack-operators/2015-January/006082.html\u003e`_"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note::"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"  This work is licensed under a Creative Commons Attribution 3.0 Unported License."}],"source_content_type":"text/x-rst","patch_set":4,"id":"da86d52c_473b06eb","line":79,"in_reply_to":"da86d52c_0d12f108","updated":"2015-02-17 07:03:13.000000000","message":"thanks!","commit_id":"d5f140d0a987d2d0f6724f5e8d4771b5d80e62b8"}]}
