设置:
rails:4.2.5.1
ruby:2.2.4p230(2015-12-16修订版53155)[i386-mingw32]
Windows 7环境
database.yml:
default: &default
adapter: mysql2
encoding: utf8
database: "database"
username: "name"
password: "password"
host: "host"
port: 3306
development:
adapter: mysql2
encoding: utf8
database: "database"
username: "name"
password: "password"
host: "host"
port: 3306
我正在尝试在RDS上使用现有的mysql数据库。我使用
创建了一个新项目
rails new "app"
然后尝试获取数据库架构。
我跑的时候
ruby bin\rake db:schema:dump
我的 schema.rb 文件中的输出对于数据库中的每个表都填充了相同的错误:
ActiveRecord::Schema.define() do
# Could not dump table "test" because of following NoMethodError
# undefined method `type' for "int(11)":String
end
我首先想到的可能是因为int(11)是64位整数,但后来才知道" 11" in int(11)指的是显示大小,它仍然是32位整数。
任何人都可以解释为什么会发生这种情况或为什么ruby不会识别主键列的32位整数类型。
答案 0 :(得分:0)
我认为您的数据库中有一个名为“type”的字段。 “type”是rails中的保留字(特别是对于数据库)。
解决方案:更改此字段的名称
Ex:“type”=> “typemore”
答案 1 :(得分:0)
我设法通过对我的Gemfile进行以下更改来摆脱此错误。
gem 'mysql2', '~>0.3.13'
#gem 'activerecord-mysql2-adapter'
然后我跑bundle install
来更新我的宝石。
我仍然不确定为什么会这样。