gpt4 book ai didi

ruby-on-rails - 从 schema.rb 中删除表

转载 作者:行者123 更新时间:2023-12-02 06:02:21 28 4
gpt4 key购买 nike

我的应用程序中有一个 Location 模型,但后来我用 Git 退后一步,当时我还没有创建模型,然后在另一个分支上工作了一段时间后,我意识到该模型无处可去,它仍然在我的架构中。我试图摆脱它,但它仍然无处不在,尽管我的应用程序中没有添加位置迁移文件。摆脱它并清理我的 schema.rb 的最佳方法是什么?

更新 1

运行

rails 破坏模型位置

给我

  invoke  active_record
remove /Users/denis/Desktop/migration/templates/create_table_migration.rb
remove app/models/location.rb
invoke test_unit
remove test/models/location_test.rb
remove test/fixtures/locations.yml

而且我可以无限期地运行它,它总是会给出相同的结果

运行此迁移:

class DropLocationsTable < ActiveRecord::Migration
def self.up
drop_table :locations
end
end

在 rake db:migrate 之后,结果为 0,位置再次出现在我的 schema.rb 中

更新 2

rails db
SQLite version 3.7.12 2012-04-03 19:43:07
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> SELECT * FROM locations;
sqlite>

最佳答案

如果你真的想删除它,你应该准备一个迁移来删除表。

如果您只是删除模型,ActiveRecord 仍会在 db 中找到该表(这可能就是您在 schema.rb 中看到它的原因 - 如果我是对的,您指的是文件而不是 db模式)

编辑:

所以我尝试重现这个,结果我得到了以下命令顺序。

  1. 首先删除表(使用 drop_table :locations 进行新迁移并运行它)
  2. 然后运行rails destroy model location(如果先销毁模型会报错)
  3. 运行 rails c 以便 Rails 获取数据库更改并更新 schema.rb

关于ruby-on-rails - 从 schema.rb 中删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533217/

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