db_preferences_mysql.rb 1.4 KB

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