gpt4 book ai didi

ruby-on-rails - rails 迁移生成随机表。这是从哪里来的?

转载 作者:行者123 更新时间:2023-11-29 12:49:37 25 4
gpt4 key购买 nike

当我在没有新迁移的情况下运行 rails db:migrate 时,它似乎添加了两个新表:questionsquestions_1

在我的架构文件中,我看到:

  create_table "questions", id: false, force: :cascade do |t|
t.integer "id"
t.text "text"
t.boolean "active"
t.integer "organization_id"
t.datetime "created_at"
t.datetime "updated_at"
t.bigint "account_id"
t.bigint "team_id"
end

create_table "questions_1", id: false, force: :cascade do |t|
t.integer "id"
t.text "text"
t.boolean "active"
t.integer "organization_id"
t.datetime "created_at"
t.datetime "updated_at"
t.bigint "account_id"
t.bigint "team_id"
end

我没有制作这些表的任何迁移。我猜这是某种约定。我在哪里寻找解决这个问题?所有最近的更改都在 app/ 目录中,我所做的迁移已回滚然后删除。然而,当我运行 rails db:migrate 时,我总是会得到这些新表。

有什么想法吗?

最佳答案

Rails 不会使用迁移中指定的名称以外的任何名称创建表。如果该表已经存在,那么它会抛出一个错误。

我相信有人运行了一个迁移,在您的数据库上创建了第二个表,然后删除了迁移。当 Rails 创建您的 schema.rb 文件时,它使用您的数据库而不是任何迁移,这意味着该文件反射(reflect)了您的实际数据库状态,而不是您的迁移建议的状态。

如果你确定你不想要第二个表并且它里面没有数据,那么你可以写一个新的迁移来删除这个表,运行它,然后删除它。这会将您的数据库状态返回到您的迁移建议的状态。然后您可以运行 rake db:schema:dump 来更新您的架构。

关于ruby-on-rails - rails 迁移生成随机表。这是从哪里来的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57491160/

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