2

最近、アプリケーションをHerokuにデプロイしました。ユーザーの場所に基づいてイベントを検索するためにGeokitを使用しています。

@events = Event.all(:origin => [@ location.lat、@ location.lng]、:within => 5、:conditions => ["end_date> =?"、Date.today]、:select => "id、created_at、user_id、location、description、permalink、title"、:order => "created_at DESC")

上記のステートメントは、mysqlデータベースを使用するローカルシステムで正常に機能しています。

しかし、Herokuで同じstmtを実行しているときにエラーが発生します。Herokuで直面している以下のエラーを確認してください。

ActiveRecord :: StatementInvalid(PGError:ERROR:function radians(charactervariing)が存在しません2011-03-20T00:52:23-07:00 app [web.1]:LINE 2:...、COS(0.303256183987648)* COS(1.36963671754269)* COS(RADIANS(fr ... 2011-03-20T00:52:23-07:00 app [web.1]:^ 2011-03-20T00:52:23-07:00 app [web .1]:ヒント:指定された名前と引数の型に一致する関数はありません。明示的な型キャストを追加する必要がある場合があります。

どんな助けでも大歓迎です。

ありがとう、カリヤン。

4

1 に答える 1

6

ヘッズアップとして、HerokuはPostgresを唯一のSQLデータベースバックエンドとして使用します:http://devcenter.heroku.com/articles/database

したがって、問題は次の2つのQ&Aに関連しています。

なぜPostgresqlはこのようなGeokitで失敗するのですか?

Rails:MySQLからPostGresに変換すると、Geokitの距離計算が壊れますか?

この場合、データベース移行を追加し、ロケーションモデルの「lat」と「lng」を「string」(または「text」)から「float」に変更する必要があります。そうすれば、GeokitはそれぞれPostgresとHerokuで正常に動作するはずです。

于 2011-03-20T09:41:49.723 に答える