Tag: mysql

Rails:如何跨主/从数据库分割写/读查询

我的网站有很大的读取流量。 比写入流量重很多。 为了提高我的网站的性能,我想到了主/从数据库配置。 octupus gem似乎提供了我想要的东西,但由于我的应用程序非常庞大,我无法通过数百万的源代码行来改变查询分布(将读取查询发送到从属服务器并将查询写入主服务器)。 MySQL Proxy似乎是解决此问题的好方法,但由于它是alpha版本,我不想使用它。 所以我的问题是什么是跨主/从服务器分割读/写查询的最佳方法? 是否可以在不使用rails中的任何gems的情况下拆分读/写查询?

Ruby on Rails中的存储过程

我是一个有6年经验的.net人。 最近我开始研究ROR项目,并意识到存储过程/ sql函数根本没有被使用。 在询问它时我知道这是常见的做法,一般来说团队中没有人写一个SQL查询,一切都是使用ActiveRecord完成的。 我搜索了任何可能的原因,但没有找到太多信息。 所以我只是好奇才知道 通常的做法是不首选使用存储过程/ sql函数吗? 使用存储过程有哪些优缺点?

如何将数据从ASCII(ISO / IEC 8859-1)导入到我的Rails / PGSQL数据库?

我正在尝试使用美国农业部发现的数据: http : //www.ars.usda.gov/Services/docs.htm? docid = 23634 ASCII(8.6Mb) – 该文件包含ASCII(ISO / IEC 8859-1)中的SR26数据,分隔文件。 这些表以关系格式组织,最好与关系数据库管理系统(RDBMS)一起使用,这将允许您形成自己的数据库查询并生成自定义报告。 我是新来操纵这样的数据,并认为我想用CSV格式,也许吧? 但是,那么我可能会失去关系,所以也许我应该去PGSQL。 不知道如何处理这个问题。 寻求指导,谢谢。

Rails中的多个数据库连接

我正在使用active_delegate在Rails中进行多个连接。 这里我使用mysql作为master_database用于某些模型,而postgresql用于其他一些模型。 问题是,当我尝试访问mysql模型时,我收到以下错误! 堆栈跟踪显示,它仍然使用postgresql适配器来访问我的mysql模型! RuntimeError: ERROR C42P01 Mrelation “categories” does not exist P15 F.\src\backend\parser\parse_relation.c L886 RparserOpenTable: SELECT * FROM “categories” STACKTRACE =========== d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract_adapter.rb:212:in `log’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/postgresql_adapter.rb:507:in `execute’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/postgresql_adapter.rb:985:in `select_raw’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/postgresql_adapter.rb:972:in `select’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:7:in `select_all_without_query_cache’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:60:in `select_all’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:81:in `cache_sql’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:60:in `select_all’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:661:in `find_by_sql’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:1553:in `find_every’ d:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:615:in `find’ D:/ROR/Aptana/dedomenon/app/models/category.rb:50:in `get_all_with_exclusive_scope’ D:/ROR/Aptana/dedomenon/app/models/category.rb:50:in `get_all_with_exclusive_scope’ D:/ROR/Aptana/dedomenon/app/controllers/categories_controller.rb:48:in `index’ 这是我的database.yml文件 postgre: &postgre adapter: postgresql […]

是否可以从Ruby调用MySQL存储过程?

当我尝试从Rails调用存储过程时,我得到以下exception: ActiveRecord::StatementInvalid: Mysql::Error: PROCEDURE pipeline-ws_development.match_save_all can’t return a result set in the given context: call match_save_all() from /Users/otto/Projects/Futures/src/pipeline-ws/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:150:in `log’ from /Users/otto/Projects/Futures/src/pipeline-ws/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:281:in `execute’ from (irb):3 Rails Wiki中有一个页面讨论了解决此问题的MySQL适配器的补丁 ,但它已经过时并且似乎不再起作用了。 配置代码可以正确启用存储过程,但是在存储过程调用和新的call_sp方法不再起作用后,连接仍然存在问题。 有关如何使其工作的任何建议? 这是我正在使用的代码: ActiveRecord::Base.connection(“call storedproc()”) 无论storedproc()是否返回任何结果,它都会抛出相同的exception。

Rails选择子查询(如果可能的话,没有finder_sql)

我有一个名为Object的模型(这并不重要) 它有一个默认价格(列称为“价格”)。 然后有一个Schedule对象允许覆盖特定日期的价格。 我希望能够在SQL查询期间确定MINIMUM价格(根据定义,默认值和“当前”价格之间的最小值),以便能够按计算的最低价格进行排序 我想让我的搜索查询尽可能高效,我想知道我是否可以这样做: Object.select(“id AS p_id, id, (SELECT MIN(`schedules`.`price`) FROM `schedules` WHERE `schedules`.`object_id` = p_id`) AS objects.min_price”).limit(5) 但是,它会生成一个奇怪的SQL,如下所示: SELECT `objects`.`id` AS t0_r0, `objects`.`title` AS t0_r1, `objects`.`created_at` AS t0_r2, `objects`.`updated_at` AS t0_r3, `objects`.`preferences` AS t0_r4 …….. (a lot of columns here) … ` WHERE `objects`.`id` IN (1, 2, 3, 4 ….) 所以,你可以看到它不起作用。 首先 – […]

Rails – postgres上的gmaps4rails gem

我在我的本地MySQL机器上成功使用了gmaps4rails gem。 但是,当我在Heroku上部署到PG时,对于使用gmaps4rails“near”函数查找所选位置附近位置的代码,我收到以下错误: 2012-05-21T17:58:40+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR: operator does not exist: numeric – character varying 2012-05-21T17:58:40+00:00 app[web.1]: ^ 2012-05-21T17:58:40+00:00 app[web.1]: LINE 1: …8.755864232 * 2 * ASIN(SQRT(POWER(SIN((30.1926300 – venues.l… 2012-05-21T17:58:40+00:00 app[web.1]: HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. 2012-05-21T17:58:40+00:00 app[web.1]: : SELECT venues.*, […]

Rails 3 Mysql问题

尝试使用mysql启动新的Rails 3 beta 4应用程序….运行OS X Snow Leopard。 使用以前版本的Rails,我对MySQL没有任何问题。 但是现在当我启动Rails 3应用程序时,当我在Rails index.html启动屏幕上单击“关于您的应用程序环境”时,我收到以下错误: mysql的未定义方法`init’:Class

轨道中的多个表连接

我如何在mysql查询下写入rails activerecord select A.*, B.* from raga_contest_applicants_songs AS A join raga_contest_applicants AS B ON B.contest_applicant_id=A.contest_applicant_id join raga_contest_rounds AS C ON C.contest_cat_id=B.contest_cat_id WHERE C.contest_cat_id = contest_cat_id GROUP BY C.contest_cat_id 我知道如何在两个表上编写连接,对如何在3个表上使用连接不太自信。

比较时的Mysql格式字符串

我怎么能告诉mysql比较我喜欢的条件,以便mysql从字符串中删除空格并使符号大写…例如,现在我的ruby代码是这样的: LineItem.find(:all, :conditions => [“(description like ?) and (order_id in (?))”, “%#{params[:art_order_search]}%”, orders.map(&:id)]) 但我该怎么办,那个mysql字段描述(不要对db进行任何更改)当我把它比作喜欢的时候,做一些事情,就像ruby gsub那样:例如:现在我会有这样的事情: description in db = ololo from lol oc 90 select * from ooo where description like “OC90″ 但我该怎么做,当我比较时,我的领域是: OLOLOFROMLOL**OC90** 究竟是什么function以及如何写在这里:(描述如何?)??? ruby string analog是: .gsub(/[^0-9A-Za-z]/, ”).upcase 但如何为mysql和mysql做到这一点? 如果事情不明确,请不要给我减去,只是在评论中提问…… 也许有TRIM和UPPER,但是怎么样?