【发布时间】:2015-03-07 02:25:19
【问题描述】:
我的 Rails 应用程序使用两个数据库,第一个是 postgresql,第二个是 -sqlite,最后一个用于测试环境。我使用了 Devise gem,它使用 inet 数据类型来携带有关 IP 的信息。它适用于 postgresql,但会导致 sqlite 出现一些错误。我已经安装了一个 gem postgres_ext 并将其添加到 Gemfile,但它并没有解决问题。下面是一段日志:
$ RAILS_ENV=test rake db:setup
(in /user/project)
db/test.sqlite3 already exists
-- enable_extension("plpgsql")
-> 0.0030s
-- create_table("comments", {:force=>:cascade})
-> 0.3368s
-- add_index("comments", ["commentable_id"],
{:name=>"index_comments_on_commentable_id", :using=>:btree})
-> 0.1680s
-- add_index("comments", ["commentable_type"], {:name=>"index_comments_on_commentable_type", :using=>:btree})
-> 0.1898s
-- add_index("comments", ["user_id"], {:name=>"index_comments_on_user_id", :using=>:btree})
-> 0.1568s
-- create_table("contacts", {:force=>:cascade})
-> 0.2803s
-- create_table("delayed_jobs", {:force=>:cascade})
-> 0.2818s
-- add_index("delayed_jobs", ["priority", "run_at"], {:name=>"delayed_jobs_priority", :using=>:btree})
-> 0.1677s
-- create_table("exercises", {:force=>:cascade})
-> 0.3360s
-- create_table("languages", {:force=>:cascade})
-> 0.3025s
-- create_table("levels", {:force=>:cascade})
-> 0.2692s
-- create_table("solutions", {:force=>:cascade})
-> 0.3262s
-- create_table("users", {:force=>:cascade})
rake aborted!
NoMethodError: undefined method `inet' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x00000007563ec8>
/home/mtczerwinski/Projekty/ruby/railsilla/db/schema.rb:104:in `block (2 levels) in <top (required)>'
等等。
你能告诉我我做错了什么吗?
【问题讨论】:
-
您可以发布您的 schema.rb,以及创建表用户的迁移文件(它位于 db/migrate/ 下,类似于 timestamp_create_users.rb)吗?
标签: ruby-on-rails ruby sqlite postgresql devise