是否有机会让Rails应用程序连接到旧的MySQL v4.1.20服务器?
rails db
命令运行良好,但我无法运行该应用程序。
当我用生成新应用程序时
rails new app_name -d mysql
我在database.yml文件中看到以下内容:
MySQL。建议使用4.1和5.0版本。
这应该意味着我可以使用它。但是Rails Active Record使用MySQL v.5.0.2+功能(https://github.com/rails/rails/blob/4-0-stable/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb):
# Make MySQL reject illegal values rather than truncating or blanking them, see
# http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html#sqlmode_strict_all_tables
# If the user has provided another value for sql_mode, don't replace it.
if strict_mode? && !variables.has_key?(:sql_mode)
variables[:sql_mode] = 'STRICT_ALL_TABLES'
end
不幸的是,我和旧的MySQL服务器版本无关。我必须使用它。
添加
strict: false
到数据库中的连接器设置。yml解决了这个问题。