gpt4 book ai didi

ruby-on-rails - 将数组列更新为 Rails 迁移中另一个文本列的值

转载 作者:行者123 更新时间:2023-11-29 13:49:19 26 4
gpt4 key购买 nike

在 Postgres 数据库表中,我有一个现有文本列 post_ids,其值如 ["", "1", "2"]。现在添加了一个新的文本和数组类型的列。

add_column :pages, :post_ids_new, :text, array: true, default: []

在迁移中,我试图将所有值从 post_ids 迁移到 post_ids_new

Page.update_all("post_ids_new = post_ids")

出现此错误是因为新列的类型为文本数组:

PG::DatatypeMismatch: ERROR:  column "post_ids_new" is of type text[] but expression is of type text

You will need to rewrite or cast the expression.

有什么方法可以迁移这些值吗?

最佳答案

您可以尝试运行 Page.update_all("post_ids_new = post_ids")在控制台中运行 rails console .

或者如果您的应用程序正在 Heroku 上运行,您可以通过 heroku console 运行控制台.

如果您想在生产环境中执行之前在开发环境中测试该命令,您可以通过运行 pg_dump --clean database_name > database_backup_file 来备份您的数据库。并通过运行 psql database_name < database_backup_file 恢复您的备份

关于ruby-on-rails - 将数组列更新为 Rails 迁移中另一个文本列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43796099/

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