drop support for MySQL 5.5 in Django 2.0?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

drop support for MySQL 5.5 in Django 2.0?

Tim Graham-2
MySQL 5.5 is end-of-life in December 2018. Usually we drop support for a particular database version in the Django release prior to the end-of-life date [0], so that would mean dropping support in Django 2.1 (released August 2018). We don't have MySQL 5.5 testing in our continuous integration servers and in local testing, I noticed some GIS test failures with MySQL 5.5. Before investigating them, I thought I'd ask to see if there might be consensus to drop support for MySQL 5.5 in Django 2.0 instead of 2.1. I'd guess anyone using MySQL 5.5 users would stick with Django 1.11 LTS or older.

https://github.com/django/django/pull/8980 shows the cleanups for removal of MySQL 5.5 support. Also, MySQL 5.5 is the last usage among the built-in database backends for the
supports_microsecond_precision database feature so there's a chance that could be removed also, though I found usage of it in django_pyodbc [1].

[0] https://code.djangoproject.com/wiki/SupportedDatabaseVersions -- t
hough we've made some exceptions like dropping support earlier for Oracle 11, https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion
[1] https://github.com/lionheart/django-pyodbc/issues/87

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/367b0ca0-1ec9-48b6-a513-4c66a30c491d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: drop support for MySQL 5.5 in Django 2.0?

Tim Allen
AFAIK, the supports_microsecond_precision feature is still needed by django-pyodbc-azure, because of SQL Server's, ahem, creative datetime fields.

See: https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/operations.py#L474

There is a fair amount of logic needed (based off of the FreeTDS version and SQL Server version) necessary as well to determine whether to use SQL Server's datetime or datetime2:

https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L80
https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L461

It may be possible to modify django-pyodbc-azure to work another way, but for that I would defer to Michaya. I haven't used any of the other pyodbc forks in years, as django-pyodbc-azure is very well maintained and supports both SQL Server and Azure.

On Saturday, August 26, 2017 at 11:09:42 AM UTC-4, Tim Graham wrote:
MySQL 5.5 is end-of-life in December 2018. Usually we drop support for a particular database version in the Django release prior to the end-of-life date [0], so that would mean dropping support in Django 2.1 (released August 2018). We don't have MySQL 5.5 testing in our continuous integration servers and in local testing, I noticed some GIS test failures with MySQL 5.5. Before investigating them, I thought I'd ask to see if there might be consensus to drop support for MySQL 5.5 in Django 2.0 instead of 2.1. I'd guess anyone using MySQL 5.5 users would stick with Django 1.11 LTS or older.

<a href="https://github.com/django/django/pull/8980" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F8980\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFZAii3AtpfpcLWRhsXl2n_m3M-Yw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F8980\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFZAii3AtpfpcLWRhsXl2n_m3M-Yw&#39;;return true;">https://github.com/django/django/pull/8980 shows the cleanups for removal of MySQL 5.5 support. Also, MySQL 5.5 is the last usage among the built-in database backends for the
supports_microsecond_precision database feature so there's a chance that could be removed also, though I found usage of it in django_pyodbc [1].

[0] <a href="https://code.djangoproject.com/wiki/SupportedDatabaseVersions" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fwiki%2FSupportedDatabaseVersions\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFYw5ZYjQwx4uIlqhlp3uMFSOhgvw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fwiki%2FSupportedDatabaseVersions\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFYw5ZYjQwx4uIlqhlp3uMFSOhgvw&#39;;return true;">https://code.djangoproject.com/wiki/SupportedDatabaseVersions -- t
hough we've made some exceptions like dropping support earlier for Oracle 11, <a href="https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion&#39;;return true;">https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion
[1] <a href="https://github.com/lionheart/django-pyodbc/issues/87" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Flionheart%2Fdjango-pyodbc%2Fissues%2F87\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHYPj2kOcfrdG5jpHXBP61hmMvRgA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Flionheart%2Fdjango-pyodbc%2Fissues%2F87\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHYPj2kOcfrdG5jpHXBP61hmMvRgA&#39;;return true;">https://github.com/lionheart/django-pyodbc/issues/87

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/6a97bf2b-3a90-4f68-ba34-86b39a649d64%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: drop support for MySQL 5.5 in Django 2.0?

Tim Graham-2
I guess a SQL Server expert will need to interpret https://blogs.msdn.microsoft.com/sqlnativeclient/2008/02/27/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client/ and say exactly which SQL Server versions require the legacy datetime handling. I see django-pyodbc-azure still supports Microsoft SQL Server 2005 (end of extended support was April 2016) and SQL Server 2008/2008R2 (end of mainstream support 2014, end of extended support July 2019). If those are the only SQL Server versions that don't have microsecond support, django-pyodbc-azure might consider dropping support for them -- doubtful if those users require the latest version of Django, I'd guess.

I'm not strictly opposed to keeping the supports_microsecond_precision feature around if it's helpful for that backend, but we'll need contributions from django-pyodbc-azure maintainers to keep it updated (mainly with respect to using the feature to skip or change behavior in tests).

On Sunday, August 27, 2017 at 6:51:40 PM UTC-4, Tim Allen wrote:
AFAIK, the supports_microsecond_precision feature is still needed by django-pyodbc-azure, because of SQL Server's, ahem, creative datetime fields.

See: <a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/operations.py#L474" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Foperations.py%23L474\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHfSS0P_4tzOu_rx9MJRqGWxUTFkA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Foperations.py%23L474\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHfSS0P_4tzOu_rx9MJRqGWxUTFkA&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/operations.py#L474

There is a fair amount of logic needed (based off of the FreeTDS version and SQL Server version) necessary as well to determine whether to use SQL Server's datetime or datetime2:

<a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L80" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L80\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH1KPM0vZ_NLf1-5skB7o5jyCaMow&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L80\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH1KPM0vZ_NLf1-5skB7o5jyCaMow&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L80
<a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L461" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L461\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE7GOwnq2NV6f87pDrASO54xoDNBw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L461\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE7GOwnq2NV6f87pDrASO54xoDNBw&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L461

It may be possible to modify django-pyodbc-azure to work another way, but for that I would defer to Michaya. I haven't used any of the other pyodbc forks in years, as django-pyodbc-azure is very well maintained and supports both SQL Server and Azure.

On Saturday, August 26, 2017 at 11:09:42 AM UTC-4, Tim Graham wrote:
MySQL 5.5 is end-of-life in December 2018. Usually we drop support for a particular database version in the Django release prior to the end-of-life date [0], so that would mean dropping support in Django 2.1 (released August 2018). We don't have MySQL 5.5 testing in our continuous integration servers and in local testing, I noticed some GIS test failures with MySQL 5.5. Before investigating them, I thought I'd ask to see if there might be consensus to drop support for MySQL 5.5 in Django 2.0 instead of 2.1. I'd guess anyone using MySQL 5.5 users would stick with Django 1.11 LTS or older.

<a href="https://github.com/django/django/pull/8980" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F8980\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFZAii3AtpfpcLWRhsXl2n_m3M-Yw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F8980\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFZAii3AtpfpcLWRhsXl2n_m3M-Yw&#39;;return true;">https://github.com/django/django/pull/8980 shows the cleanups for removal of MySQL 5.5 support. Also, MySQL 5.5 is the last usage among the built-in database backends for the
supports_microsecond_precision database feature so there's a chance that could be removed also, though I found usage of it in django_pyodbc [1].

[0] <a href="https://code.djangoproject.com/wiki/SupportedDatabaseVersions" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fwiki%2FSupportedDatabaseVersions\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFYw5ZYjQwx4uIlqhlp3uMFSOhgvw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fwiki%2FSupportedDatabaseVersions\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFYw5ZYjQwx4uIlqhlp3uMFSOhgvw&#39;;return true;">https://code.djangoproject.com/wiki/SupportedDatabaseVersions -- t
hough we've made some exceptions like dropping support earlier for Oracle 11, <a href="https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion&#39;;return true;">https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion
[1] <a href="https://github.com/lionheart/django-pyodbc/issues/87" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Flionheart%2Fdjango-pyodbc%2Fissues%2F87\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHYPj2kOcfrdG5jpHXBP61hmMvRgA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Flionheart%2Fdjango-pyodbc%2Fissues%2F87\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHYPj2kOcfrdG5jpHXBP61hmMvRgA&#39;;return true;">https://github.com/lionheart/django-pyodbc/issues/87

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/d906a0e7-8706-4d3f-9475-319bf3d1da20%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: drop support for MySQL 5.5 in Django 2.0?

Collin Anderson-2
In reply to this post by Tim Graham-2
As a datapoint for MySQL, Most of my websites are on Ubuntu 16.04 (Python 3.5, MySQL 5.7), though I do have one on 14.04 (Python 3.4, MySQL 5.5) that I _would_ upgrade to Django 2.0 if we kept 5.5 support, but it's not a big deal to leave it at 1.11 until I switch to 16.04.

On Sat, Aug 26, 2017 at 11:09 AM, Tim Graham <[hidden email]> wrote:
MySQL 5.5 is end-of-life in December 2018. Usually we drop support for a particular database version in the Django release prior to the end-of-life date [0], so that would mean dropping support in Django 2.1 (released August 2018). We don't have MySQL 5.5 testing in our continuous integration servers and in local testing, I noticed some GIS test failures with MySQL 5.5. Before investigating them, I thought I'd ask to see if there might be consensus to drop support for MySQL 5.5 in Django 2.0 instead of 2.1. I'd guess anyone using MySQL 5.5 users would stick with Django 1.11 LTS or older.

https://github.com/django/django/pull/8980 shows the cleanups for removal of MySQL 5.5 support. Also, MySQL 5.5 is the last usage among the built-in database backends for the
supports_microsecond_precision database feature so there's a chance that could be removed also, though I found usage of it in django_pyodbc [1].

[0] https://code.djangoproject.com/wiki/SupportedDatabaseVersions -- t
hough we've made some exceptions like dropping support earlier for Oracle 11, https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion
[1] https://github.com/lionheart/django-pyodbc/issues/87

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/367b0ca0-1ec9-48b6-a513-4c66a30c491d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFO84S7E6Zp284KUKv2NALN3G%2BBUWMxMPPt2uJDFcMtGuz3aig%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: drop support for MySQL 5.5 in Django 2.0?

Adam Johnson-2
Collin, it's also not hard to install MySQL 5.6 from Oracle on Ubuntu 14.04 ;)

Tim, the commit to clean up MySQL 5.5 isn't very big, especially if you put back in the supports_microsecond_precision code. I'm not sure dropping it "prematurely" is that helpful, considering that GIS is rarely used most people won't notice breakage.

That said I'm not using Oracle MySQL that much, so I can't comment on 5.5 prevalence; in fact I work mostly with MariaDB these days.

On 30 August 2017 at 23:01, Collin Anderson <[hidden email]> wrote:
As a datapoint for MySQL, Most of my websites are on Ubuntu 16.04 (Python 3.5, MySQL 5.7), though I do have one on 14.04 (Python 3.4, MySQL 5.5) that I _would_ upgrade to Django 2.0 if we kept 5.5 support, but it's not a big deal to leave it at 1.11 until I switch to 16.04.

On Sat, Aug 26, 2017 at 11:09 AM, Tim Graham <[hidden email]> wrote:
MySQL 5.5 is end-of-life in December 2018. Usually we drop support for a particular database version in the Django release prior to the end-of-life date [0], so that would mean dropping support in Django 2.1 (released August 2018). We don't have MySQL 5.5 testing in our continuous integration servers and in local testing, I noticed some GIS test failures with MySQL 5.5. Before investigating them, I thought I'd ask to see if there might be consensus to drop support for MySQL 5.5 in Django 2.0 instead of 2.1. I'd guess anyone using MySQL 5.5 users would stick with Django 1.11 LTS or older.

https://github.com/django/django/pull/8980 shows the cleanups for removal of MySQL 5.5 support. Also, MySQL 5.5 is the last usage among the built-in database backends for the
supports_microsecond_precision database feature so there's a chance that could be removed also, though I found usage of it in django_pyodbc [1].

[0] https://code.djangoproject.com/wiki/SupportedDatabaseVersions -- t
hough we've made some exceptions like dropping support earlier for Oracle 11, https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion
[1] https://github.com/lionheart/django-pyodbc/issues/87

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/367b0ca0-1ec9-48b6-a513-4c66a30c491d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAFO84S7E6Zp284KUKv2NALN3G%2BBUWMxMPPt2uJDFcMtGuz3aig%40mail.gmail.com.

For more options, visit https://groups.google.com/d/optout.



--
Adam

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CAMyDDM27d%2BfUjUskGiP%2B778JcGjgFB85rByKTvFBSuOaGt0Y2w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: drop support for MySQL 5.5 in Django 2.0?

Tim Allen
In reply to this post by Tim Graham-2
SQL Server microsecond support (DATETIME2) was first introduced in SQL Server 2008. I can't speak on behalf of Michaya or those maintaining other SQL Server backends, but in our use cases dropping support for 2005 by switching from DATETIME to DATETIME2 exclusively would make sense. That said, we are slowly but surely becoming a PostgreSQL shop, so someone who relies on SQL Server more heavily than us may have further input. The standalone DATE column was also introduced in SQL Server 2008.

I've started a thread here to discuss with Michaya: https://github.com/michiya/django-pyodbc-azure/issues/109

On Wednesday, August 30, 2017 at 3:49:32 PM UTC-4, Tim Graham wrote:
I guess a SQL Server expert will need to interpret <a href="https://blogs.msdn.microsoft.com/sqlnativeclient/2008/02/27/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client/" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fblogs.msdn.microsoft.com%2Fsqlnativeclient%2F2008%2F02%2F27%2Fmicrosoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGjHAdNIuJIW8uDwQYqIRnzq1bWgA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fblogs.msdn.microsoft.com%2Fsqlnativeclient%2F2008%2F02%2F27%2Fmicrosoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGjHAdNIuJIW8uDwQYqIRnzq1bWgA&#39;;return true;">https://blogs.msdn.microsoft.com/sqlnativeclient/2008/02/27/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client/ and say exactly which SQL Server versions require the legacy datetime handling. I see django-pyodbc-azure still supports Microsoft SQL Server 2005 (end of extended support was April 2016) and SQL Server 2008/2008R2 (end of mainstream support 2014, end of extended support July 2019). If those are the only SQL Server versions that don't have microsecond support, django-pyodbc-azure might consider dropping support for them -- doubtful if those users require the latest version of Django, I'd guess.

I'm not strictly opposed to keeping the supports_microsecond_precision feature around if it's helpful for that backend, but we'll need contributions from django-pyodbc-azure maintainers to keep it updated (mainly with respect to using the feature to skip or change behavior in tests).

On Sunday, August 27, 2017 at 6:51:40 PM UTC-4, Tim Allen wrote:
AFAIK, the supports_microsecond_precision feature is still needed by django-pyodbc-azure, because of SQL Server's, ahem, creative datetime fields.

See: <a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/operations.py#L474" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Foperations.py%23L474\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHfSS0P_4tzOu_rx9MJRqGWxUTFkA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Foperations.py%23L474\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHfSS0P_4tzOu_rx9MJRqGWxUTFkA&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/operations.py#L474

There is a fair amount of logic needed (based off of the FreeTDS version and SQL Server version) necessary as well to determine whether to use SQL Server's datetime or datetime2:

<a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L80" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L80\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH1KPM0vZ_NLf1-5skB7o5jyCaMow&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L80\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH1KPM0vZ_NLf1-5skB7o5jyCaMow&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L80
<a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L461" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L461\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE7GOwnq2NV6f87pDrASO54xoDNBw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L461\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE7GOwnq2NV6f87pDrASO54xoDNBw&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L461

It may be possible to modify django-pyodbc-azure to work another way, but for that I would defer to Michaya. I haven't used any of the other pyodbc forks in years, as django-pyodbc-azure is very well maintained and supports both SQL Server and Azure.

On Saturday, August 26, 2017 at 11:09:42 AM UTC-4, Tim Graham wrote:
MySQL 5.5 is end-of-life in December 2018. Usually we drop support for a particular database version in the Django release prior to the end-of-life date [0], so that would mean dropping support in Django 2.1 (released August 2018). We don't have MySQL 5.5 testing in our continuous integration servers and in local testing, I noticed some GIS test failures with MySQL 5.5. Before investigating them, I thought I'd ask to see if there might be consensus to drop support for MySQL 5.5 in Django 2.0 instead of 2.1. I'd guess anyone using MySQL 5.5 users would stick with Django 1.11 LTS or older.

<a href="https://github.com/django/django/pull/8980" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F8980\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFZAii3AtpfpcLWRhsXl2n_m3M-Yw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F8980\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFZAii3AtpfpcLWRhsXl2n_m3M-Yw&#39;;return true;">https://github.com/django/django/pull/8980 shows the cleanups for removal of MySQL 5.5 support. Also, MySQL 5.5 is the last usage among the built-in database backends for the
supports_microsecond_precision database feature so there's a chance that could be removed also, though I found usage of it in django_pyodbc [1].

[0] <a href="https://code.djangoproject.com/wiki/SupportedDatabaseVersions" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fwiki%2FSupportedDatabaseVersions\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFYw5ZYjQwx4uIlqhlp3uMFSOhgvw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fwiki%2FSupportedDatabaseVersions\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFYw5ZYjQwx4uIlqhlp3uMFSOhgvw&#39;;return true;">https://code.djangoproject.com/wiki/SupportedDatabaseVersions -- t
hough we've made some exceptions like dropping support earlier for Oracle 11, <a href="https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion&#39;;return true;">https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion
[1] <a href="https://github.com/lionheart/django-pyodbc/issues/87" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Flionheart%2Fdjango-pyodbc%2Fissues%2F87\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHYPj2kOcfrdG5jpHXBP61hmMvRgA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Flionheart%2Fdjango-pyodbc%2Fissues%2F87\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHYPj2kOcfrdG5jpHXBP61hmMvRgA&#39;;return true;">https://github.com/lionheart/django-pyodbc/issues/87

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/1c688f05-1a12-4f59-a77f-34cd36613c1a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: drop support for MySQL 5.5 in Django 2.0?

Michiya Takahashi
Thank you for letting me know about this and sorry for my delay. I have dropped support for SQL Server 2005 from django-pyodbc-azure since Django 2.0. There is no problem for me to remove  the supports_microsecond_precision database feature from Django 2.


2017年8月31日木曜日 23時45分01秒 UTC+9 Tim Allen:
SQL Server microsecond support (DATETIME2) was first introduced in SQL Server 2008. I can't speak on behalf of Michaya or those maintaining other SQL Server backends, but in our use cases dropping support for 2005 by switching from DATETIME to DATETIME2 exclusively would make sense. That said, we are slowly but surely becoming a PostgreSQL shop, so someone who relies on SQL Server more heavily than us may have further input. The standalone DATE column was also introduced in SQL Server 2008.

I've started a thread here to discuss with Michaya: <a href="https://github.com/michiya/django-pyodbc-azure/issues/109" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fissues%2F109\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFeLFrF-xGUB5gzJfavJcUKPDDE-g&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fissues%2F109\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFeLFrF-xGUB5gzJfavJcUKPDDE-g&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/issues/109

On Wednesday, August 30, 2017 at 3:49:32 PM UTC-4, Tim Graham wrote:
I guess a SQL Server expert will need to interpret <a href="https://blogs.msdn.microsoft.com/sqlnativeclient/2008/02/27/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client/" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fblogs.msdn.microsoft.com%2Fsqlnativeclient%2F2008%2F02%2F27%2Fmicrosoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGjHAdNIuJIW8uDwQYqIRnzq1bWgA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fblogs.msdn.microsoft.com%2Fsqlnativeclient%2F2008%2F02%2F27%2Fmicrosoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGjHAdNIuJIW8uDwQYqIRnzq1bWgA&#39;;return true;">https://blogs.msdn.microsoft.com/sqlnativeclient/2008/02/27/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client/ and say exactly which SQL Server versions require the legacy datetime handling. I see django-pyodbc-azure still supports Microsoft SQL Server 2005 (end of extended support was April 2016) and SQL Server 2008/2008R2 (end of mainstream support 2014, end of extended support July 2019). If those are the only SQL Server versions that don't have microsecond support, django-pyodbc-azure might consider dropping support for them -- doubtful if those users require the latest version of Django, I'd guess.

I'm not strictly opposed to keeping the supports_microsecond_precision feature around if it's helpful for that backend, but we'll need contributions from django-pyodbc-azure maintainers to keep it updated (mainly with respect to using the feature to skip or change behavior in tests).

On Sunday, August 27, 2017 at 6:51:40 PM UTC-4, Tim Allen wrote:
AFAIK, the supports_microsecond_precision feature is still needed by django-pyodbc-azure, because of SQL Server's, ahem, creative datetime fields.

See: <a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/operations.py#L474" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Foperations.py%23L474\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHfSS0P_4tzOu_rx9MJRqGWxUTFkA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Foperations.py%23L474\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHfSS0P_4tzOu_rx9MJRqGWxUTFkA&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/operations.py#L474

There is a fair amount of logic needed (based off of the FreeTDS version and SQL Server version) necessary as well to determine whether to use SQL Server's datetime or datetime2:

<a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L80" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L80\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH1KPM0vZ_NLf1-5skB7o5jyCaMow&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L80\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNH1KPM0vZ_NLf1-5skB7o5jyCaMow&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L80
<a href="https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L461" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L461\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE7GOwnq2NV6f87pDrASO54xoDNBw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fmichiya%2Fdjango-pyodbc-azure%2Fblob%2F4df37f3ec40abaf1aca608e1922a93073db8f144%2Fsql_server%2Fpyodbc%2Fbase.py%23L461\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE7GOwnq2NV6f87pDrASO54xoDNBw&#39;;return true;">https://github.com/michiya/django-pyodbc-azure/blob/4df37f3ec40abaf1aca608e1922a93073db8f144/sql_server/pyodbc/base.py#L461

It may be possible to modify django-pyodbc-azure to work another way, but for that I would defer to Michaya. I haven't used any of the other pyodbc forks in years, as django-pyodbc-azure is very well maintained and supports both SQL Server and Azure.

On Saturday, August 26, 2017 at 11:09:42 AM UTC-4, Tim Graham wrote:
MySQL 5.5 is end-of-life in December 2018. Usually we drop support for a particular database version in the Django release prior to the end-of-life date [0], so that would mean dropping support in Django 2.1 (released August 2018). We don't have MySQL 5.5 testing in our continuous integration servers and in local testing, I noticed some GIS test failures with MySQL 5.5. Before investigating them, I thought I'd ask to see if there might be consensus to drop support for MySQL 5.5 in Django 2.0 instead of 2.1. I'd guess anyone using MySQL 5.5 users would stick with Django 1.11 LTS or older.

<a href="https://github.com/django/django/pull/8980" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F8980\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFZAii3AtpfpcLWRhsXl2n_m3M-Yw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Fpull%2F8980\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFZAii3AtpfpcLWRhsXl2n_m3M-Yw&#39;;return true;">https://github.com/django/django/pull/8980 shows the cleanups for removal of MySQL 5.5 support. Also, MySQL 5.5 is the last usage among the built-in database backends for the
supports_microsecond_precision database feature so there's a chance that could be removed also, though I found usage of it in django_pyodbc [1].

[0] <a href="https://code.djangoproject.com/wiki/SupportedDatabaseVersions" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fwiki%2FSupportedDatabaseVersions\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFYw5ZYjQwx4uIlqhlp3uMFSOhgvw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fcode.djangoproject.com%2Fwiki%2FSupportedDatabaseVersions\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFYw5ZYjQwx4uIlqhlp3uMFSOhgvw&#39;;return true;">https://code.djangoproject.com/wiki/SupportedDatabaseVersions -- t
hough we've made some exceptions like dropping support earlier for Oracle 11, <a href="https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion&#39;;return true;">https://groups.google.com/forum/#!topic/django-developers/IawbBWzPXaA/discussion
[1] <a href="https://github.com/lionheart/django-pyodbc/issues/87" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Flionheart%2Fdjango-pyodbc%2Fissues%2F87\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHYPj2kOcfrdG5jpHXBP61hmMvRgA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Flionheart%2Fdjango-pyodbc%2Fissues%2F87\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHYPj2kOcfrdG5jpHXBP61hmMvRgA&#39;;return true;">https://github.com/lionheart/django-pyodbc/issues/87

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/32270039-5be1-401f-9f70-fb083d78cbb7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.