首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails中删除mysql表

问在Rails中删除mysql表
EN

Stack Overflow用户
提问于 2010-05-06 00:06:02
回答 1查看 949关注 0票数 0

如何在Rails中删除选定的表?我想从数据库中删除具有给定前缀的所有表。在这一点上,PHPMyAdmin将非常有用。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-06 00:21:52

您可以安装phpMyAdmin并手动删除您的表,或者如果您想在rails框架中执行此操作并保持迁移同步,为什么不创建一个新的迁移来删除self.up上的表并在self.down上创建表。

代码语言:javascript
复制
class DropOldTablesMigration < ActiveRecord::Migration
  def self.up
    drop_table :prefix_table1
    drop_table :prefix_table2
  end

  def self.down
    create_table :prefix_table1 do |t|
      t.column :name, :string
    end
    create_table :prefix_table2 do |t|
      t.column :name, :string
    end
  end
end

编辑:只是为了跟进,如果问题是有很多表,而你不想全部输入它们,你可以这样做:

代码语言:javascript
复制
class DropOldTablesMigration < ActiveRecord::Migration
  def self.up
    ActiveRecord::Base.connection.tables.each do |t|
      unless t.index('yourprefix_') == nil
        drop_table t
      end
    end
  end
end

当然,当您以这种方式向下迁移时,您将无法重新创建表,但根据您的应用程序中发生的情况,这可能不是一个问题。

编辑以回应您的评论:

要创建新的迁移,请从应用程序的根目录运行以下命令:

代码语言:javascript
复制
script/generate migration YourMigrationName

将在db/migrate中为您创建迁移文件。添加要运行的代码并保存它。要运行新文件,请在命令行中输入以下内容

代码语言:javascript
复制
rake db:migrate
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2774898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档