Tag: mysql

Rails 4 MySQL bigInt主键问题和错误

我需要在rails 4.1.8应用程序中使用14位bigInt作为主键。 使用SO上的旧post作为指导,我想出了以下内容来解决这个问题…… class CreateAcctTransactions false do |t| t.integer :id, :limit => 8,null: false t.integer “account_id”,limit: 8,null: false t.integer “transaction_type_id”, null: false t.datetime “date”,null: false t.text “description”,limit: 255 t.decimal “amount”,precision: 10, scale: 2, null: false end end end 但是,这种方法并没有真正将“id”指定为主键 ,它只是另一个普通字段。 此外,当我收到以下错误时…… Mysql2 ::错误:字段’id’没有默认值:INSERT INTO acct_transactions ( account_id , amount , date , description , transaction_type_id […]

Rails 3:如何查找字段可能等于nil的记录?

我想找到maiden_name等于SongWriter的所有my_maiden_name ? 注意: my_maiden_name可能nil 我试过了: SongWriter.where(“maiden_name = ?”, my_maiden_name) 除了my_maiden_name = nil的情况外,它工作正常。 当my_maiden_name = nil ,生成的查询为: SELECT `song_writers`.* FROM `song_writers` WHERE (maiden_name = NULL) 而不是: SELECT `song_writers`.* FROM `song_writers` WHERE maiden_name IS NULL 如何概括活动记录查询以包含案例my_maiden_name = nil ?

如何选择一天中每小时的最新记录

我想根据日期时间列’reading_on’选择给定日期中每小时的最新记录。 我执行了以下查询 hourly_max = InverterReading .where(“DATE(reading_on) = ? AND imei = ?”, Date.today, “770000000000126”) .group(“HOUR(reading_on)”) .having(“max(HOUR(reading_on))”) hourly_max.group_by(&:id).each { |k,v| puts v.last.reading_on } 在上面的查询中,我没有得到所需的结果。 选择一天中每小时最新记录的正确方法是什么。 下面是表格结构

我怎样才能修改我的MySQL密码,以便我可以在db上创建db:create?

我非常喜欢这一切。 当我db:rake create时,我得到以下内容:访问被拒绝用户’root’@’localhost’(使用密码:NO)。 请提供mysql安装的root密码> rake aborted! 没有密码设置。 我整天都在stackoverflow和谷歌搜索。 我甚至为它设置了密码并试了一下。 是的,我去过http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-unix 但是,当我按照说明重置密码时,终端和我自己无法找到.pid文件! 我已经尝试将mysqld_safe与–skip-grant-tables选项一起使用,并结束了这个: 110821 23:32:22 mysqld_safe用/ usr / local / var / mysql中的数据库启动mysqld守护进程rm:/tmp/mysql.sock:权限被拒绝110821 23:32:24来自pid文件的mysqld_safe mysqld / usr / local / var / mysql / Tony-Ngs-MacBook-Air.local.pid结束了

Mysql ::错误:重复条目

我有一个模特 class Gift :account_id end add_index(:gifts, [:account_id, :giver_id], :uniq => true) 行动 def create @gift= Gift.new(params[:gift]) if @gift.save … else … end end 在“生产”模式中,我有时会收到错误 ActiveRecord::StatementInvalid: Mysql::Error: Duplicate entry ‘122394471958-50301499’ for key ‘index_gifts_on_account_id_and_user_id’ 有什么问题?

为什么Rails Active Record迁移会在mysql的varchar列上生成COLLATE utf8_bin

我在导轨上运行jruby for rails 3.0.10。 我发现在某个varchar列上以某种方式激活记录迁移会生成COLLATE utf8_bin。 当我做一个show create table用户时: CREATE TABLE `users` ( `id` int(11) not null AUTO_INCREMENT default NULL, `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin not null default ”, `remember_created_at` datetime, `sign_in_count` int(11) default 0, `current_sign_in_at` datetime, `last_sign_in_at` datetime, `current_sign_in_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin default NULL, …. 任何人都知道为什么以及如何关闭它?

使用搜索逻辑的日期条件

Rails插件 – 来自二进制逻辑的Searchlogic – 提供按日期过滤的function。 我的表单设置如此…… 但是,我从控制器中生成的@search对象返回的日期… @search = Task.with_member(current_user).search(params[:search]) 生成一个看起来像这样的日期参数 {:due_at_after=>Sat, 31 Oct 2009 20:00:00 EDT -04:00} 使用这两种格式,表单不会显示所选的下拉列表。 看起来searchlogic对象中的格式也使用了时区调整时间。 有关如何处理这个的任何想法?

DISTINCT ON查询w / ORDER BY列的最大值

我的任务是将一个Rails应用程序从MySQL转换为Postgres asap并遇到一个小问题。 活动记录查询: current_user.profile_visits.limit(6).order(“created_at DESC”).where(“created_at > ? AND visitor_id ?”, 2.months.ago, current_user.id).distinct 生成SQL: SELECT visitor_id, MAX(created_at) as created_at, distinct on (visitor_id) * FROM “profile_visits” WHERE “profile_visits”.”social_user_id” = 21 AND (created_at > ‘2015-02-01 17:17:01.826897’ AND visitor_id 21) ORDER BY created_at DESC, id DESC LIMIT 6 我在使用MySQL时非常自信,但我老实说是Postgres的新手。 我认为这个查询失败的原因有很多。 我认为需要先区分。 我不知道如何通过max函数的结果来订购 我甚至可以使用这样的max函数吗? 此查询的高级目标是返回用户的6个最新配置文件视图。 任何关于如何修复此ActiveRecord查询(或它的结果SQL)的指针将不胜感激。

rails保存到mysql DB之前更改日期格式

我有一个我希望以MM / DD / YYYY显示的日期选择器。 但是我正在使用一个想要YYYY-MM-DD的mysql数据库。 因为它现在正在保存,但日期和月份正在逆转。 现在我有一个initalizer,date_time_formats.rb,它有: Date::DATE_FORMATS[:default] = ‘%m/%d/%Y’ 同样在我的datepicker jscript中,我有正确的格式,我想显示: $(this).datepicker({“format”: “mm/dd/yyyy”, “weekStart”: 0, “autoclose”: true, “startDate”:new Date()}); 我尝试过这样的事情: Date.strptime(params[:location], “%d/%m/%Y”) 但是我得到了HashWithIndifferentAccess错误。 在分配给模型实例之前,如何在params哈希中重新格式化日期? 原因是如果日期无效(例如,2013年4月4日是好的,但2013年4月20日不是因为没有20个月),它似乎会被拒绝。 我是一个很大的时间轨道新手,所以也许我错了,但这就是它似乎工作。 谢谢!

在rails上创建新的应用程序ruby

我很困惑“轻松”在轨道上使用ruby,因为我已经花了三天时间尝试创建应用程序。 我在site5托管上工作,并尝试创建新的应用程序。 一步步: $ rails new app -d mysql $ gem install mysql $ gem install mysql2 之后 $ rake db:create 它报告错误 Could not find gem ‘mysql2 (~> 0.2.6, runtime)’ in any of the gem sources listed in your Gemfile. 我谷歌它,但仍然无法解决问题。 有人可以帮忙吗?