今天碰到一个相当棘手的问题,那就是ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value 。
本来在本地测试是没有任何问题的,但是一到服务器上就会出错,错误为:Mysql2::Error: Incorrect string value ,经过分析发现是中文的问题。按照理论来说以前都没有出现过这样的情况,为什么这次会出问题了呢?查看了一下,没有什么异样。于是在本地打了一个相同的环境,然后测试依旧没有问题。这个为难死了,因为每次测试,服务器上的日志都是一样的,只要是中文就会出错。无奈只有登录到服务器上去修改配置了。
首先查看的数据库的charset :
status show variables like '%char%'
发现数据库上的charset server是latin类型的,于是乎改为utf8 ,这个要修改配置文件的,修改以后重启,发现charset确实改了,但是还是出错。去网上查了一下,又说rails4.0 的问题的,又回所mysql的问题的。但是感觉和我的情况不相似。怎么办?突然想到前几天作django的时候遇到的一个问题,于是想到会不会是collation的问题呢。于是看了一下
show table status
果真发现问题了,原来是collations的问题阿。下面就是把数据库和表的collation改了以下,提供一个笨的方法:
ALTER DATABASE 数据库的名字 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci //这两条每个数据表都要执行一次的。 ALTER TABLE 表的名字 DEFAULT CHARACTER SET utf8; ALTER TABLE 表的名字 site CONVERT TO CHARACTER SET utf8;
然后运行,搞定了
相关推荐
Sortiri是一种干净轻巧的解决方案,用于使ActiveRecord :: Base对象可排序。 描述Sortiri是一种干净轻巧的解决方案,用于使ActiveRecord :: Base对象可排序。 入门Ruby 2.6.0和更高版本上的ActiveRecord 4.2+支持...
ActiveRecord::Mysql::UuidColumn 向ActiveRecord MySQL2适配器添加一个:uuid列,该列存储在一个16字节的二进制列中。 这正是它需要的空间。安装将此行添加到您的应用程序的Gemfile中: gem 'activerecord-mysql-...
Activerecord :: Mysql ::未签名 为ActiveRecordMySQL2适配器将无符号选项添加到整数类型。 支持版本 5.0 > ActiveRecord::VERSION >= 3.2 安装 将此行添加到您的应用程序的Gemfile中: gem 'activerecord-mysql...
adapter: mysql2 encoding: utf8 database: myapp_development username: root password: password host: localhost ``` 一旦模型和数据库配置就绪,我们就可以开始进行数据操作。创建新记录: ```ruby user...
将其添加到您的Gemfile gem "otr-activerecord"2.配置您的数据库连接加载了gem之后,请使用以下示例之一将有关数据库配置的信息告知OTR::ActiveRecord : OTR::ActiveRecord.configure_from_file! "config/database....
stateful_enum是建立在ActiveRecord的内置ActiveRecord :: Enum之上的状态机gem。 安装 将此行添加到您的Rails应用程序的Gemfile中: gem 'stateful_enum' 和捆绑。 动机 您不需要抽象 stateful_enum取决于...
适用于Node.jsMySQL ActiveRecord适配器在node-mysql模块( )之上的查询生成器。 对我来说,主要好处是能够将JavaScript对象直接定向到MySQL查询组件,而不必担心构造查询本身。 尽管此查询生成器是迈向ORM的微小...
RailsAsyncMigrations ActiveRecord::Migration扩展程序以一种简单直接的方式使您的迁移异步。动机创建该库的目的是为了帮助在技术水平上难以扩展的小型公司。 小型项目不需要异步迁移队列,大公司在遇到扩展问题时...
Mysql休闲说明 突出显示有问题MySQL解释结果。 受启发。 安装 将此行添加到您的应用程序的... adapter : 'mysql2' , username : 'root' , database : 'employees' ) class Employee < ActiveRecord :: Base ;
ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) ...Database adapter jdbcmysql Database schema version 0
易于使用的c#数据库层就像Castle.ActiveRecord一样,但是没有NHibernate层来解决麻烦。 在此阶段,您可以在MySQL和SQL Server数据库上保存/删除/搜索。 特征 少SQL,少xml的表到类的映射 参加课程 关系1-1和1-n ...
ActiveRecord :: Jwt 此ActiveRecord扩展添加了jwt(JSON Web Token)方法 安装 将此行添加到您的应用程序的Gemfile中: gem 'activerecord-jwt' 然后执行: $ bundle 或将其自己安装为: $ gem install ...
ActiveRecord :: TypedStore 但具有类型化的属性。 安装 将此行添加到您的应用程序的Gemfile中: gem 'activerecord-typedstore' 然后执行: $ bundle 或将其自己安装为: $ gem install activerecord-...
ActiveRecord::Mysql::Comment 为 ActiveRecord MySQL 适配器的迁移添加列注释和索引注释安装将此行添加到应用程序的 Gemfile 中: gem 'activerecord-mysql-comment' 然后执行: $ bundle或者自己安装: $ gem ...
**Ruby-ActiveRecord Turntable:数据库分片的ActiveRecord扩展** 在现代的Web应用程序中,随着数据量的增长,单个...如果你正在面临数据增长带来的挑战,ActiveRecord::Turntable 可能是一个值得考虑的解决方案。
一个迭代开发中的网站难免存在bug,出bug的时候客户体验就很不好了,为解决此...AR_ERROR_CLASSES = [ActiveRecord::RecordNotFound, ActiveRecord::StatementInvalid] ERROR_CLASSES = [NameError, NoMethodError
ActiveRecord-RescueFromDuplicate 当尝试插入未通过唯一性验证的记录时,此gem将挽救SQL错误。 它补充:validates_uniqueness_of ,并将添加适当的错误。 此外,宏允许您假定记录将是唯一的,否则将以优美的方式...
丝瓜络活动记录 地位系统地位大堂CI 代码气候 版眼描述loofah-activerecord将loofahHTML清理功能扩展到Rails ActiveRecord模型中。 在以下查看有关loofah更多信息: : 特征丝瓜络activerecord包含两个ActiveRecord...
userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta
示例简单的方法...class Post < ActiveRecord::Base include Timeline::Track track :new_postend默认情况下,跟踪在after_create模型的回调中触发,并用作self对象和creator参与者。您可以明确指定这些选项...class...