无法使用 activerecord-postgis-adapter 添加 st_point 列

Trouble adding st_point column with activerecord-postgis-adapter

这是我在 project github 上所写内容的完整副本。请原谅我交叉发布,但我希望这里有人遇到过这个错误:

undefined method `st_point' for #
<ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition:0x0055cdd8f278e8>

这是我的 Gemfile 锁:

activerecord (4.2.7.1)
activerecord-postgis-adapter (3.1.4)

和迁移:

class CreateLocations < ActiveRecord::Migration
  def change
    enable_extension "postgis"
    create_table :locations do |t|
      t.st_point :geom, geographic: true, srid: 4326, dimension: 2
      t.timestamps
    end
  end
end

奇怪的是这在开发模式下有效。就在我 运行 测试环境的迁移失败时。

rake db:create RAILS_ENV=test 之后,我已使用 psql 和 运行 CREATE EXTENSION postgis; 连接到测试数据库。

tl;dr

t.st_point在迁移中未定义,仅在测试环境中。

ENV["DATABASE_URL"]

中的错误是 "postgres" 而不是 "postgis"

这是其他人在线程中提出的建议。我很固执,没有检查这个,但事实证明这是正确的原因。