【问题标题】:Rails 4: How to drop or remove (join) tables tables from database?Rails 4:如何从数据库中删除或删除(连接)表?
【发布时间】:2013-12-14 00:14:45
【问题描述】:

在 Rails 4 文档 (http://guides.rubyonrails.org/migrations.html#creating-a-join-table) 中,我看到要删除表或连接表,可以在命令行中使用以下方法:

drop_tabledrop_join_table

但是,它进一步补充说,必须“提供一个块”——我不知道执行时会是什么样子。

不管我的问题是:如何删除表或删除连接表?

另外,当我说删除时,我的意思是从我的数据库中删除它。我知道我不能删除迁移,并且回滚迁移是不明智的,因为它会扰乱协作努力——所以我想尽可能避免删除迁移文件和回滚迁移。

我在创建迁移以填充数据库时犯了一个错误。我知道如何修改表的列(添加新的、重命名和删除它们)。我只是不知道如何清除表。

感谢您考虑我的问题。

我想从我的数据库中完全删除一个表。我的应用程序在 Rails 4 上运行。

【问题讨论】:

    标签: ruby-on-rails-4 rails-migrations drop-table


    【解决方案1】:

    drop_join_table 方法在文档 drop_join_table 中定义

    它需要表 1、表 2 的名称。示例:您有两个名为categoriesproducts 的表,并连接名为categories_products 的表)

    所以创建一个你喜欢的任何名称的迁移文件,然后你编写代码来删除连接表::

    def change
      drop_join_table :categories, :products 
    end
    

    您可以将其他选项传递给drop_join_table 方法,这些选项与create_join_table 相同。查看此方法以查看更多选项。

    例如,如果您的连接表没有名称遵循约定,例如categorization,您可以指定它:

    def change
      drop_join_table :categories, :products, table_name: categorization 
    end
    

    要删除一个表,用drop_table方法更简单:

    def change
      drop_table :table_name
    end
    

    其他选项可以传入drop_table方法,如create_table方法的选项

    【讨论】:

    • 嘿,Kien,这是一个很好的故障。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    相关资源
    最近更新 更多