Hi, I’d like to propose to bump the minimum version of PostgreSQL to 9.6 and MySQL to 5.7 for Rails 7.
I have opened similar pull requests for Rails 6.0 to bump the minimum version of PostgreSQL 9.3 by Bump the minimum version of PostgreSQL to 9.3 by yahonda · Pull Request #34520 · rails/rails · GitHub and MySQL to 5.6 by Validate if `utf8mb4` character set and longer index key prefix is supported by yahonda · Pull Request #33853 · rails/rails · GitHub.
Let me explain why.
PostgreSQL 9.3 to 9.5 are EOL
The main reason to bump the minimum version of PostgreSQL from 9.3 to 9.6 is to drop EOL versions of PostgreSQL.
According to PostgreSQL: Versioning Policy
PostgreSQL 9.3 is EOL since November 2018 PostgreSQL 9.4 is EOL since February 2020 PostgreSQL 9.5 is EOL since Feb 11, 2021
Better support for utf8mb4 character set
Starting from Rails 6.0, the default character set of MySQL is utf8mb4.
Users who want to use this character set with MySQL 5.6 need to enable the
innodb_large_prefix system variable at the MySQL server. Without enabling this system variable enabled, MySQL 5.6 users will get
Specified key was too long; max key length is 767 bytes error. MySQL 5.7.9 supports a longer index key prefix by default the there is no need to configure the MySQL server to use utf8mb4 character set.
MySQL 5.6 is “EOL” since Feb 1, 2021.
MySQL 5.6 is covered under Oracle Lifetime Sustaining Support Per Oracle’s Lifetime Support policy, as of February 1, 2021, MySQL 5.6 is covered under Oracle Sustaining Support.
Here Oracle Lifetime Sustaining Support will not provide new releases, not provide new fixes then I think we can call MySQL 5.6 is “EOL”.
I’d like to get feedback on this proposal. Also, I’m ready to open pull requests for each bumps. Thank you.