【发布时间】:2016-09-22 03:45:14
【问题描述】:
我使用 postgres 数据库创建了一个 rails 应用程序。我正在使用 postgis 扩展进行地理查询。该应用程序在我的开发(本地)机器上成功运行,但是在我运行 heroku run rake db:migrate 时在 heroku 服务器上部署我的代码后,它抛出了一个错误,说 undefined method geometry for ActiveRecord ConnectionAdapters PostgreSQL。
我在一些迁移中使用几何数据类型来存储纬度和经度。
请注意,我还在 heroku 上创建了 PostGIS extension。以及成功执行的不包含几何数据类型的迁移。 我的文件是:
宝石文件
ruby "2.3.0"
gem 'rails', '>= 5.0.0.beta3', '< 5.1'
gem 'pg', '~> 0.18'
gem 'rgeo'
gem 'rgeo-activerecord', "~> 5.0.0.beta"
gem "activerecord-postgis-adapter", "~> 4.0.0.beta2"
psql --version 为:9.5.2 在 heroku 服务器上
psql --version 是:9.4.7 在本地服务器上
database.yml
default: &default
adapter: postgis
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: ad_development
production:
<<: *default
database: ad_production
username: ad
password: <%= ENV['DATABASE_PASSWORD'] %>
create_cities 迁移
def change
create_table :cities do |t|
t.string :name
t.references :state, foreign_key: true
t.geometry :lat_lan
end
heroku run rake db:migrate 仅在此处停止。
我很困惑我是否使用了不合适的 gem 或者我配置了错误的东西。请帮忙!
【问题讨论】:
标签: ruby-on-rails postgresql heroku postgis