无法使用 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"
这是其他人在线程中提出的建议。我很固执,没有检查这个,但事实证明这是正确的原因。
这是我在 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"这是其他人在线程中提出的建议。我很固执,没有检查这个,但事实证明这是正确的原因。