【问题标题】:Delete Rails Migration But Without Deleting Model删除 Rails 迁移但不删除模型
【发布时间】:2020-01-22 13:49:33
【问题描述】:

如果您删除模型,迁移也会被删除。

但是有没有办法只删除与模型相关的迁移而不删除模型本身?

您的真诚

【问题讨论】:

  • 回滚迁移并删除有问题的迁移也会删除模型的文件?
  • 我没有说回滚!我说的是与某个模型相关的非生成迁移。可以将这些定义为所有为特定模型生成表或更改所述表的列的迁移。
  • 删除迁移不会删除模型,除非您运行rails d model ...
  • 这就是为什么我以我的方式回答我自己的问题。不过谢谢

标签: ruby-on-rails rails-migrations


【解决方案1】:

迁移文件只是文件,一旦不需要它们(当您确定没有具有旧架构的数据库实例可能需要向上/向下迁移时)- 删除它们没有任何害处。

如果“迁移”是指模型的底层数据库表本身 - 您可以回滚具有相应 created_table 的迁移,或者拥有将 drop_table 的迁移并创建一个新的迁移。

【讨论】:

    【解决方案2】:

    如果您只想删除迁移文件,假设您的:

    migration_file_name = 20181225123240_create_posts.rb
    

    运行这个命令rails d migration create_posts

    【讨论】:

      【解决方案3】:

      我选择删除表并手动删除所有其他相关迁移。

      rails generate migration DropProductsTable
      

      在生成迁移后,写入迁移

      class DropProductsTable < ActiveRecord::Migration
        def change
          drop_table :products
        end
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-07
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-22
        相关资源
        最近更新 更多