gpt4 book ai didi

mysql - MySQL 和 PostgreSQL 之间的不同结果

转载 作者:行者123 更新时间:2023-11-29 14:36:46 25 4
gpt4 key购买 nike

在本地我使用 MySQL,在远程我使用 PostgreSQL(在 Heroku 上),并且得到不同的结果。

Controller

 @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

查看

<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 类型,而不是 record 类型。无论我使用 = 还是 IN,我都会在本地得到正确的结果。

当我在 Heroku 上运行它,并将 = 替换为 IN 时,错误消失了,但结果是错误的。我只是得到一行,其中第一列(activity_description)为空,并且不是按事件类型显示计数,而是聚合计数或仅显示一个 Activity_type。即,即使我有很多 Activity_type,并且这一行没有返回 Activity_id,也只出现一行。

最佳答案

当您将数据库迁移到 Heroku 时,Heroku 内部使用 taps gem 将本地数据库导入到 Heroku。
但是,它有一些限制(外键和 Postgres Bigint)。

Taps gem constraints when importing local DB to Postgres

如果这对您没有帮助,这里有一些很棒的链接可以帮助您进行转换。

  1. Converting Rails application data from MySQL to PostgreSQL
  2. Rake task to transfer a Rails database, say from MySQL to Postgres and back again

关于mysql - MySQL 和 PostgreSQL 之间的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8861375/

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