db_preferences_mysql.rb 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # mysql
  2. if ActiveRecord::Base.connection_config[:adapter] == 'mysql2'
  3. Rails.application.config.db_4bytes_utf8 = false
  4. # mysql version check
  5. # mysql example: "5.7.3"
  6. # mariadb example: "10.1.17-MariaDB"
  7. server_version = ActiveRecord::Base.connection.select_rows('SHOW VARIABLES LIKE \'version\'')[0][1]
  8. raise 'Unable to retrive database version' if !server_version
  9. (server_version, server_vendor) = server_version.split('-')
  10. if !server_vendor
  11. server_vendor = 'MySQL'
  12. end
  13. (major, minor) = server_version.split('.')
  14. if server_vendor == 'MySQL'
  15. if major.to_i < 5 || (major.to_i == 5 && minor.to_i < 6)
  16. # rubocop:disable Rails/Output
  17. # rubocop:disable Rails/Exit
  18. p '+++++++++++++++++++++++++++++++++++++++++++++++++++++'
  19. p '+ I\'m sorry, MySQL 5.6+ is required +'
  20. p '+++++++++++++++++++++++++++++++++++++++++++++++++++++'
  21. exit 1
  22. # rubocop:enable Rails/Exit
  23. # rubocop:enable Rails/Output
  24. end
  25. elsif server_vendor == 'MariaDB'
  26. if major.to_i < 10
  27. # rubocop:disable Rails/Output
  28. # rubocop:disable Rails/Exit
  29. p '+++++++++++++++++++++++++++++++++++++++++++++++++++++'
  30. p '+ I\'m sorry, MariaDB 10.0+ is required +'
  31. p '+++++++++++++++++++++++++++++++++++++++++++++++++++++'
  32. exit 1
  33. # rubocop:enable Rails/Exit
  34. # rubocop:enable Rails/Output
  35. end
  36. end
  37. end