<div dir="ltr"><div class="gmail_default" style="font-family:courier new,monospace">Thx Monty, jroll, smcginnis, zzzeek_ ...<br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><span style="font-family:courier new,monospace"></span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">-amrith</span><br><br><span style="font-family:courier new,monospace">--</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">Amrith Kumar</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">Phone: +1-978-563-9590</span><br><br></div></div>
<br><div class="gmail_quote">On Wed, May 31, 2017 at 10:17 AM, Monty Taylor <span dir="ltr"><<a href="mailto:mordred@inaugust.com" target="_blank">mordred@inaugust.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 05/31/2017 08:51 AM, Amrith Kumar wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This email thread relates to[1], a change that aims to improve cross-SQL support in project schemas.<br>
<br>
I want to explicitly exclude the notion of getting rid of support for PostgreSQL in the underlying project schemas, a topic that was discussed at the summit[2].<br>
<br>
In this change, the author (Thomas Bechtold, copied on this thread) makes the comment that the change "is not changing the schema. It just avoids implicit type conversion".<br>
<br>
It has long been my understanding that changes like this are not upgrade friendly as it could lead to two installations both with, say version 37 or 38 of the schema, but different table structures. In effect, this change breaks upgradability of systems.<br>
<br>
i.e. a deployment which had a schema from the install of Ocata would have a v38 table modules table with a default of 0 and one installed with Pike (should this change be accepted) would have a modules table with a default of False.<br>
</blockquote>
<br>
I agree that if that was the case this would be bad. But I don't think it's the case here.<br>
<br>
The datatype in the model is already Boolean. So I believe that means this will be a tinyint in MySQL and likely a boolean in PG (I'm guessing) the only change here is to the SQLA layer in what is being used in code - and being more explicit seems good.<br>
<br>
So I think this is a win.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'm raising this issue on the ML because the author also claims (albeit not verified by me) that other projects have accepted changes like this.<br>
</blockquote>
<br>
Thanks! I think this is an area we need to be careful in - and extra eyeballs are a good thing.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I submit to you that the upgrade friendly way of making this change would be to propose a new version of the schema which alters all of these tables and includes the correct default value. On a fresh install, with no data, the upgrade step with this new schema version would bring the table to the right default value and any system with that version of the schema would have an identical set of defaults. Similarly any system with v37 or 38 of the schema would have identical defaults.<br>
</blockquote>
<br>
Yes - I agree - that would definitely be the right way to do this if there was a model change.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
What's the advice of the community on this change; I've explicitly added stable-maint-core as reviewers on this change as it does have stable branch upgrade implications.<br>
<br>
-amrith<br>
<br>
[1] <a href="https://review.openstack.org/#/c/467080/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/467080/</a><br>
​[2]<a href="https://etherpad.openstack.org/p/BOS-postgresql" rel="noreferrer" target="_blank">https://etherpad.openstack<wbr>.org/p/BOS-postgresql</a><br>
​<br>
​​<br>
<br>
--<br>
Amrith Kumar<br>
Phone: <a href="tel:%2B1-978-563-9590" value="+19785639590" target="_blank">+1-978-563-9590</a><br>
<br>
<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
<br>
</blockquote>
<br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
</blockquote></div><br></div>