gpt4 book ai didi

ruby-on-rails - 在开发中改变了我的数据库结构,所以尝试重置 Heroku 部署的数据库。删除了它,但现在我无法迁移我的数据库

转载 作者:行者123 更新时间:2023-12-04 03:35:29 25 4
gpt4 key购买 nike

所以我的应用程序运行良好。我创建了一个新模型和一些关联,使我的 heroku 应用程序中的所有旧种子数据无用。所以我试图重置它并再次填充它。但我什至无法使用 heroku rake db:migrate 命令将我的数据库迁移到 heroku。我正在使用 SQLite,但我的错误似乎与 Postgres 有关。我不知道那是什么意思,如果有的话

这是错误:

rake aborted!
An error has occurred, this and all later migrations canceled:

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

Tasks: TOP => db:migrate

我的迁移:
class ChangeDataTypeForEmailUsers < ActiveRecord::Migration
def self.up
change_column :emails, :to, :integer
change_column :emails, :from, :integer
end

def self.down
change_column :to, :string
change_column :from, :string
end
end

问题是什么?我部署的应用程序运行良好。我添加了一个新模型并认为我应该重置部署的数据库。所以我运行 heroku pg:reset 然后将我的代码推送到 heroku。然后尝试迁移数据库,但它不起作用!我做了什么?在过去的 4 个小时里,我一直在努力解决这个问题。我不能再直接思考了。任何帮助将不胜感激

最佳答案

根据 heroku 文档 here

原因:PostgreSQL 不知道如何将该表中的所有行转换为指定类型。这很可能意味着您在该列中有一个整数或一个字符串。

解决方案:检查您的记录并确保它们可以转换为新类型。有时,避免使用 change_column 更容易,而是重命名/创建新列。

我之前也处于这个位置,但我没有找到解决方案,所以我不得不创建一个新列,当我遇到这个问题时,postgresql 似乎很敏感。希望能帮助到你

关于ruby-on-rails - 在开发中改变了我的数据库结构,所以尝试重置 Heroku 部署的数据库。删除了它,但现在我无法迁移我的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8503156/

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