gpt4 book ai didi

ruby-on-rails - rails : how to rollback a botched migration

转载 作者:行者123 更新时间:2023-12-03 22:33:18 24 4
gpt4 key购买 nike

我是个白痴……搞砸了在 Rails 中的迁移:

认为迁移会像模型生成器一样工作(使用 references:modelname )我做了以下事情:

$ rails g migration add_event_to_photos references:event

创建了迁移
class AddEventToPhotos < ActiveRecord::Migration
def change
add_column :photos, :references, :event
end
end

现在我的开发数据库( SQLite3 )有一个 references列类型 eventphotos table 。

我的 schema.rb 中间有一行说:
# Could not dump table "photos" because of following StandardError
# Unknown type 'event' for column 'references'
rake db:rollback对此无能为力:
$ rake db:rollback
== AddEventToPhotos: reverting ===============================================
-- remove_column("photos", :references)
rake aborted!
An error has occurred, this and all later migrations canceled:

undefined method `to_sym' for nil:NilClass

那么,如何回滚和维护我在数据库中的开发数据呢?如果那是我唯一的选择,我什至很乐意把照片表扔掉……但不想重建整个事情。该怎么办?

顺便说一句-对于任何阅读本文的人都会犯同样的愚蠢错误......不要!使用正确的迁移生成器:
$ rails g migration add_event_to_photos event_id:integer

最佳答案

我发现最简单的方法是在 /db/ 中的 schema.rb 文件中重新创建表。 .之后我跑了一个 rake db:reset (如果它说您有待处理的迁移,只需删除它们并重试)。

这解决了这个问题。

关于ruby-on-rails - rails : how to rollback a botched migration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018412/

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