当前应用程序我们正在使用sqlite数据库,现在我们必须从sqlite迁移到Postgresql。我已经使用以下续集进行迁移了
续集-C sqlite://db/development.sqlite3 postgres:// username:password @ localhost / dbname
迁移后,我面临如下语法错误
SELECT COUNT(*) FROM "devices" WHERE (User_id IS 6 AND mac_address IS "88:83:123:31:68")
ActiveRecord :: StatementInvalid(PG :: SyntaxError:ERROR:语法错误等于或接近“ 6” 第1行:...在“设备”中的ECT COUNT(*)(User_id为6和mac ..)
我的控制器我已经在下面的查询中使用了以上语法
@device_by_user = Device.where("User_id IS #{id} AND mac_address IS \"#{mac}\"")
对于PostgreSQL,要求以下查询语法,其中以大写字母开头的字段名称用引号引起来,文本值应该用单引号引起来。
SELECT COUNT(*) FROM "devices" WHERE "User_id"=6 AND mac_address= '88:83:123:31:68';
我需要在适用的地方更改语法吗?还是在Rails中还有其他方法可用?
谢谢, 亚历克斯
答案 0 :(得分:0)
您应该能够:
Device.where({ :user_id => 6, :mac_address => '88:83:123:31:68'}).count
如果模型正确,它应该可以工作。 希望有帮助