gpt4 book ai didi

ruby-on-rails - ActiveRecord::ConnectionAdapters::PostgreSQL 的未定义方法 `geometry'

转载 作者:行者123 更新时间:2023-11-29 14:10:32 27 4
gpt4 key购买 nike

我已经使用 postgres 数据库创建了一个 Rails 应用程序。我正在使用 postgis 扩展进行地理查询。该应用程序在我的开发(本地)机器上成功运行,但是在我运行 heroku run rake db:migrate 时在 heroku 服务器上部署我的代码后,它抛出一个错误,说 undefined method geometry for ActiveRecord ConnectionAdapters PostgreSQL。我在一些迁移中有几何数据类型用于存储纬度和经度。

请注意,我还创建了 PostGIS extension 在 heroku 上。并且不包含几何数据类型的迁移已成功执行。我的文件是:

gem 文件

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 is: 9.5.2 on heroku server

psql --version is: 9.4.7 on local server

数据库.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 还是配置错误。请帮忙!

最佳答案

如果使用 DATABASE_URL 环境变量设置数据库连接字符串,请确保它具有 postgis://(而非 postgres://)前缀。

即。 postgis://username:password@db_server_url:5432/dbname

关于ruby-on-rails - ActiveRecord::ConnectionAdapters::PostgreSQL 的未定义方法 `geometry',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37421864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com