В Rails проблемы с чтением типа точки из MySQL с помощью mysql2 gem - PullRequest
0 голосов
/ 01 марта 2019

Я работаю в рефакторе из устаревшей системы, и у меня возникают проблемы с типом данных "point".

Внутри Sequel Pro я вижу значение столбца "location" как POINT(-22.81507676827597 -47.07767857976228)

Но когда я запрашиваю его из базы данных

Mysql2::Client.new(
          host: ENV.fetch('LEGACY_DATABASE_HOST'),
          username: ENV.fetch('LEGACY_DATABASE_USERNAME'),
          password: ENV.fetch('LEGACY_DATABASE_PASSWORD'),
          database: ENV.fetch('LEGACY_DATABASE_NAME')
        ).query("SELECT * FROM local").first('location')

, я получаю странный результат, такой как "\ x00 \ x00 \ x00 \ x00 \ x01 \ x01 \ x00 \ x00 \ x00 \ x84y\ xFF \ xDE \ xA8 \ xD06 \ xC0 \ xE0 \ xD6 '_ \ xF1 \ x89G \ xC0 ", если я попытаюсь сохранить его сразу, он станет 0.

Как правильноиметь дело с точечным типом данных в MySQL с рельсами?

1 Ответ

0 голосов
/ 01 марта 2019

Я настоятельно рекомендую использовать activerecord-postgis-adapter gem, что делает все это очень простым.Хотя, если вы настроены делать это самостоятельно, покопайтесь в этом драгоценном камне и посмотрите, как они делают вещи point.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...