Разные результаты между MySQL и PostgreSQL - PullRequest
0 голосов
/ 14 января 2012

Локально я использую MySQL и удаленно использую PostgreSQL (на Heroku) и получаю разные результаты.

контроллер

 @customer = current_customer
 @shows = @customer.shows
 @musicals = Musical.find(:all, :conditions =>['show_id in (?)', @shows])

 @musicals.each do |musical|
   @musical_activities = Activity.where('musical_id in (?)', musical.id).count(:group => "activity_type_id")
 end

view

<table>
  <tr>
<th>Activity</th>
<th>Number</th>     
  </tr>

<% @activities.each do |activity_id, count| %>
  <tr>
<td><%= activity_description(activity_id) %></td>
<td><%= count %></td>
  </tr>  
<% end %>
</table>

Ранее я использовал = вместо in, но я изменил его, потому что я получал PGError, говорящий, что аргумент WHERE должен иметь тип boolean, а не type record.Независимо от того, использую я = или IN, я получаю правильные результаты локально.

Когда я запускаю его на Heroku и заменяю = на IN, ошибка исчезает, но результат неверен.Я просто получаю одну строку, в которой первый столбец (activity_description) пуст, и вместо того, чтобы показывать мне счетчики по видам деятельности, счет либо агрегируется, либо отображается только один тип деятельности.Т.е. появляется только одна строка, хотя у меня много типов activity_ty, и одна строка не возвращала идентификатор activity_id.

Ответы [ 2 ]

1 голос
/ 14 января 2012

Когда вы переносите свою базу данных в Heroku, Heroku внутренне использует гем taps для импорта вашей локальной базы данных в Heroku.
Но есть некоторые ограничения для этого (внешние ключи и Postgres Bigint).

Активирует ограничения gem при импорте локальной базы данных в Postgres

Если это не поможет, вот несколько полезных ссылок, которые помогут вам с конвертацией.

  1. Преобразование данных приложения Rails из MySQL в PostgreSQL
  2. Rake-задача для передачи базы данных Rails, скажем, из MySQL в Postgres и обратно
0 голосов
/ 14 января 2012

Либо используйте аддон myD ClearDB (http://addons.heroku.com/cleardb) и оставайтесь на MySQL.

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