【问题标题】:Rake is aborting because undefined method `inet'Rake 正在中止,因为未定义的方法“inet”
【发布时间】:2014-08-19 11:20:30
【问题描述】:

我应该在哪里以及如何定义inet?这是一个有效的 postgreSQL 数据类型。

http://www.postgresql.org/docs/8.4/static/datatype-net-types.html

rake db:migrate
==  CreateSysHosts: migrating =================================================
-- create_table(:sys_hosts)
rake aborted!
An error has occurred, this and all later migrations canceled:

undefined method `inet' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition:0x00000005e3e068>/opt/csdashboard/db/migrate/20140628123004_create_sys_hosts.rb:4:in `block in change'

迁移文件:

class CreateSysHosts < ActiveRecord::Migration
  def change
    create_table :sys_hosts do |t|
      t.inet :address
      t.string :name
      t.string :os_name
      t.string :os_flavor
      t.int :user_id
      t.string :info
      t.string :comments

      t.timestamps
    end
  end
end

【问题讨论】:

  • 你能发布迁移文件吗?
  • 用迁移文件更新了问题。

标签: ruby-on-rails postgresql


【解决方案1】:

使用 postgres_ext gem 支持 Postgres 的增强数据类型,如 inet。

一个例子postgres_ext: Adding Postgres data types to Rails

postgres_ext 为以下 PostgresSQL 类型添加了迁移和 schema.rb 支持:

  • INET
  • CIDR
  • MACADDR
  • UUID
  • 数组

【讨论】:

  • 那需要从 3.2.14 升级到 4.x 对吧?
  • 我想是的。或尝试旧版本 - rubygems.org/gems/postgres_ext/versions/1.0.0
  • 现在我得到未定义的方法int' for #&lt;ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition:0x00000004c47698&gt;/opt/csdashboard/db/migrate/20140628123004_create_sys_hosts.rb:9:in block in change'
  • 这应该是一个单独的问题
猜你喜欢
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-08
相关资源
最近更新 更多