gpt4 book ai didi

mysql - RoR : Cannot change_column in postgres, 在 MySQL 中正常(用于开发的 MySQL,Heroku 上的 Postgres)

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:49 26 4
gpt4 key购买 nike

我有一个名为“奖品”的专栏:

create_table :contests do |t|
t.text :prize

我最近意识到这将始终是一个整数,我想设置一个默认值:

def change
change_column :contests, :prize, :integer, :default => 200

这在我使用 MySQL DB 的本地计算机上运行良好。但是,当我推送到我的生产站点(托管在 Heroku 上,它给了我一个 Postgres 数据库)时,我收到以下错误:

PGError: ERROR:  column "prize" cannot be cast to type "pg_catalog.int4"
: ALTER TABLE "contests" ALTER COLUMN "prize" TYPE integer

在本文中:http://www.postgresonline.com/periodical.php?i_id=3他们讨论了使用 USING 来解决这个问题。但我不知道我该怎么做,也不知道这是否适合我正在尝试做的事情。

如果您有任何关于解决这个问题的见解,我们将不胜感激。

谢谢!林戈

最佳答案

首先,您应该在两个环境中使用相同的数据库,以防止出现此类意外情况。

要在迁移中运行原始 sql,请参阅此示例 http://guides.rubyonrails.org/migrations.html#using-the-up-down-methods

关于mysql - RoR : Cannot change_column in postgres, 在 MySQL 中正常(用于开发的 MySQL,Heroku 上的 Postgres),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11276855/

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