Imr*_*mad 2 postgresql postgis ruby-on-rails heroku
我使用 postgres 数据库创建了一个 rails 应用程序。我正在使用 postgis 扩展进行地理查询。该应用程序在我的开发(本地)机器上成功运行,但在我运行时在 heroku 服务器上部署我的代码后,heroku run rake db:migrate它抛出一个错误,说undefined method geometry for ActiveRecord ConnectionAdapters PostgreSQL. 我在某些迁移中使用几何数据类型来存储纬度和经度。
请注意,我还在heroku 上创建了PostGIS 扩展。并且成功执行不包含几何数据类型的迁移。我的文件是:
文件
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"
Run Code Online (Sandbox Code Playgroud)
psql --version 是:9.5.2在heroku服务器上
psql --version 是:9.4.7在本地服务器上
数据库.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'] %>
Run Code Online (Sandbox Code Playgroud)
create_cities 迁移
def change
create_table :cities do |t|
t.string :name
t.references :state, foreign_key: true
t.geometry :lat_lan
end
Run Code Online (Sandbox Code Playgroud)
heroku run rake db:migrate 只停在这里。
我完全困惑是我使用了不合适的 gem 还是我配置错误。请帮忙!
小智 7
如果使用 DATABASE_URL 环境变量设置数据库连接字符串,请确保它具有postgis://(而不是 postgres://)前缀。
IE。 postgis://username:password@db_server_url:5432/dbname
| 归档时间: |
|
| 查看次数: |
1463 次 |
| 最近记录: |