Tag: mysql

使用Ruby / Chef Recipe for Vagrant导入Mysql数据库

我正在编写一个自动设置开发环境的厨师脚本。 我可以创建一个数据库并授予权限,但我试图找到一种方法将mysql转储文件导入刚刚创建的数据库。 我授予访问权限的代码是 ruby_block “Execute grants” do block do require ‘rubygems’ Gem.clear_paths require ‘mysql’ m = Mysql.new(‘localhost’, “root”, node[:mysql][:server_root_password]) m.query(“GRANT ALL ON *.* TO ‘root’@’10.0.0.1’ IDENTIFIED BY ‘#{node[:mysql][:server_root_password]}'”) m.query(‘FLUSH PRIVILEGES’) end end 我希望我能够执行以下查询#m.query(“-u root -p root db_name < /project/db/import.sql") 但只是给了我一个错误。 我没有做太多的Ruby,所以很难弄明白。 谁知道我怎么做到这一点?

“我们很遗憾,但出了问题。”在部署到Heroku之后

我做了一个小应用程序,用户可以登录/注销,创建等等。 我正在使用mySQL作为数据库,一切都在本地环境中正常工作。 但是在我将它部署到heroku并迁移数据库等之后,heroku版本无效。 当我拖尾日志时,我得到了这个: 2011-10-20T18:48:22+00:00 app[web.1]: Started GET “/” for 83.233.57.240 at 2011-10-20 11:48:22 -0700 2011-10-20T18:48:22+00:00 app[web.1]: Processing by HomeController#index as HTML 2011-10-20T18:48:22+00:00 app[web.1]: Rendered home/index.html.erb within layouts/application (0.0ms) 2011-10-20T18:48:22+00:00 app[web.1]: Completed 500 Internal Server Error in 2ms 2011-10-20T18:48:22+00:00 app[web.1]: 2011-10-20T18:48:22+00:00 app[web.1]: ActionView::Template::Error (defaults.js isn’t precompiled): 2011-10-20T18:48:22+00:00 app[web.1]: 3: 2011-10-20T18:48:22+00:00 app[web.1]: 4: 2011-10-20T18:48:22+00:00 app[web.1]: 5: […]

Production Rails控制台无法启动

在我的OS X开发笔记本电脑上一切正常。 将应用程序部署到生产环境并运行并按预期显示数据。 但是,当我尝试在生产服务器上运行Rails 控制台时,我收到错误… $ rails console -e production /opt/deployed_rails_apps/con_app_rails_3/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/client.rb:44: in `connect’: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) (Mysql2::Error) from /opt/deployed_rails_apps/con_app_rails_3/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `initialize’ from /opt/deployed_rails_apps/con_app_rails_3/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `new’ 我尝试从database.yml中删除socket: /tmp/mysql.sock – 结果相同。 虽然应用程序运行,但我确实需要能够在生产中访问控制台以执行某些任务。 我可以使用MySQL命令行客户端连接到MySQL服务器。 ruby1.9.3p125 Rails 3.2.2 mysql2 gem 0.3.11 MySQL服务器:5.1.61 生产主机:Linux 2.6.32-220.4.2.el6.x86_64 database.yml的 development: adapter: mysql2 encoding: utf8 reconnect: false database: con_app_rails_3_development […]

MySQL或Rails在特定日期范围内每天获得AVG的最佳方式

我正在尝试在Rails中制作图表,例如在给定日期范围内每天的平均销售额 假设我有一个product_sold模型,它具有“sales_price”浮点属性。 但是如果特定日期没有销售(例如模型/ db中没有),我想简单地返回0。 MySQL / Rails完成这项工作的最佳方法是什么? 我知道我可以这样做: ( 这个SQL查询可能是完全错误的方式来获得我想要的东西 ) SELECT avg(sales_price) AS avg, DATE_FORMAT(created_at, ‘%m-%d-%Y’) AS date FROM products_sold WHERE merchant_id = 1 GROUP BY date; 得到这样的结果: | 平均| 日期| 23 01-03-2009 50 01-05-2009 34 01-07-2009 …… 我想得到的是: | 平均| 日期| 23 01-03-2009 0 01-04-2009 50 01-05-2009 0 01-06-2009 34 01-07-2009 0 01-08-2009 […]

Rails – 两个应用程序之间的共享数据库表

我们将很快发布一个配套的Rails应用程序到我们现有的Rails应用程序。 我们将在同一台服务器上与现有应用程序一起运行配套应用程序。 我的问题涉及数据库。 我的托管服务提供商通常会为新应用程序配置第二个不同的数据库 – secondappname_production。 但是,应用程序之间有一系列共享表。 这些共享表也由一系列cron作业维护。 如果可能的话,我希望避免重复这些表(以及cron作业)。 有没有办法可以将这些共享表放在Rails应用程序可以利用的共享数据库中? 有关如何配置或文档指针的任何建议? 非常感谢! 编辑:澄清为什么我不想在同一个数据库中运行这两个应用程序:两个应用程序都有相同名称的模型(但模型的不同属性等),所以我宁愿不运行两个相同的DB ….

Ruby On Rails很慢……?

我正在编写一个Web应用程序来监控家具厂的生产流程。 它有数千个数据需要处理。 到目前为止,我在Mongrel + MySQL上运行RoR并且它真的很慢(对于某些视图来说是2-4分钟)。 当我查看RoR日志时,似乎数据库查询不是很慢(0-10ms)。 RoR在将​​数据库数据转换为对象时是否会变慢? 杂种慢吗? 编辑 :第一件事:我在开发中。 ENV。 在生产环境中,最慢的视图需要2分钟(在好的计算机上会减少不到1分钟,我的是5年)。 有了ruby-prof和一些常识,我发现哪些方法正在减慢应用程序的速度。 问题是在大型数据集的循环中调用单个SQL查询: ofs = Ofkb.find_by_sql [“..some large sql query…”] for of in ofs # About 700-1000 elements ops = Operation.find(..the single query..) etc. end 以下是这些方法的ruby-prof结果: %self total self wait child calls name 32.19 97.91 97.91 0.00 0.00 55 IO#gets (ruby_runtime:0} 28.31 86.39 86.08 […]

将SQL文件转储到Heroku中的ClearDB

我有一个sql文件,我希望使用ClearDB插件将其转储到Heroku中的MySQL数据库中。 在本地转储时我会执行以下操作: mysql -u my_user -p mydatabasename < my_dump_file.sql 但是,我对如何将其转储到Heroku MySQL数据库没有任何线索。 我所知道的就是这个地址: mysql://b5xxxxx7:37xxxad@us-cdbr-east.cleardb.com/heroku_xxxxxx?reconnect=true 但是,如果我尝试做: mysql://b5xxxxx7:37d8faad@us-cdbr-east.cleardb.com/heroku_xxxxxx?reconnect=true < my_dump_file.sql 我得到No such file or directory 。 我该怎么办呢?

Rails – rake db:创建错误

我试图运行rake db:为mysql数据库创建,但得到错误 $ rake db:create rake aborted! undefined method `task’ for # 我运行–trace并获取信息 /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing’ /Users/lucasdobbins/rails_projects/sharebox/Rakefile:7:in `’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load_rakefile’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:495:in `raw_load_rakefile’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:78:in `block in load_rakefile’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:77:in `load_rakefile’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:61:in `block in run’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/lib/rake/application.rb:59:in `run’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/gems/rake-0.9.0/bin/rake:31:in `’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/bin/rake:19:in `load’ /Users/lucasdobbins/.rvm/gems/ruby-1.9.2-head/bin/rake:19:in `’ 这是我的database.yml文件 development: adapter: mysql encoding: utf8 […]

TypeError:nil不是符号

只是尝试使用ActiveRecord保存,我不断得到“TypeError:nil不是符号” if card_data[:card] and card_data[:deck] e = self.find_or_create_by(card_id: card_data[:card].id, deck_id: card_data[:deck].id, main: main) e.card = card_data[:card] e.deck = card_data[:deck] e.quantity = card_data[:quantity].to_i e.main = main pe e.save if e.card and e.deck end 我运行上面的代码。 架构: create_table “entries”, id: false, force: true do |t| t.integer “card_id” t.integer “deck_id” t.integer “quantity”, default: 0, null: false t.integer “main”, default: […]

Windows上是否支持Datamapper的dm_mysql_adapter gem?

我想用Ruby发挥更多,目前似乎掌握了sinatra,但现在也希望从关系数据库中获取数据。 我倾向于将Mysql用于测试应用程序并尝试安装gems,但是当它尝试编译它所依赖的本机do_mysql gem时,我一直遇到exception。 我确实已经安装了原生扩展,并且它们对JSON gem工作得很好,我记得有一段时间在某处读取当前不支持windows的do_mysql,所以只是想知道是否仍然如此。 在Windows 7上使用ruby 1.9.2(通过ruby安装程序+本机扩展安装) 这是例外,它有助于: C:\dump\ruby\DataMapperTest\gems>gem install dm-mysql-adapter-1.2.0.gem Temporarily enhancing PATH to include DevKit… Building native extensions. This could take a while… ERROR: Error installing dm-mysql-adapter-1.2.0.gem: ERROR: Failed to build gem native extension. C:/Tools/Ruby192/bin/ruby.exe extconf.rb checking for my_global.h… no checking for mysql.h… no checking for main() in -llibmysql… no checking for […]