我正在使用mysql在共享主机上部署rails应用程序。但是,在开发期间,我正在使用sqlite数据库。我的查询需要在这两种环境中工作。我之前问过使用concat的查询,它可以在两个数据库上运行: Can MySQL concatenate strings with ||
有人告诉我应该将sql_mode设置为PIPES_AS_CONCAT或ANSI。现在我的问题是我应该在我的应用程序中设置sql_mode的位置和方式。它可以作为初始化程序完成,以免更改我的通用代码吗?
我尝试使用此处的代码段:http://gabrito.com/post/configuring-mysql-sql-mode-in-ruby-on-rails,但这不起作用 - 我猜测连接方法已经改变,因为该帖子相当陈旧。
非常感谢任何帮助。顺便说一句,我正在使用rails 3.1.3。
答案 0 :(得分:1)
主要区别可能是您可能正在使用mysql2适配器 - 请尝试在ActiveRecord::ConnectionAdapters::Mysql2Adapter
上覆盖该方法。
我个人认为在开发和生产中使用不同的数据库是在寻找麻烦(除非您正在编写能够在许多不同数据库上运行的东西)。数据库之间的差异可能很微妙,例如sqlite3在列类型方面具有相当灵活的视图 - 您可以非常愉快地插入>声明为VARCHAR(255)
的列中有255个字符,而mysql会截断数据。