我使用tiny_tds和activerecord-sqlserver-adapter gems连接到远程sqlserver数据库。我让它在本地工作,但当我部署到heroku时,我得到以下错误:
ActiveRecord::StatementInvalid: TinyTds::Error: Unicode-only排序中的Unicode数据或ntext数据无法发送到使用DB-Library(如ISQL)或ODBC 3.7或更早版本的客户端
是否需要在heroku上进行设置才能使其工作?
经过数小时的挖掘和试错,根本原因是来自ntext(max)和nvarchar(max)列。一旦将列更改为varchar,它就可以工作了。
如果您需要知道它们之间的区别,那就是nvarchar占用的空间是varchar的两倍,因为它允许非英语Unicode字符。只有当你要用其他语言存储数据时,你才需要这个