gpt4 book ai didi

mysql - 在 Rails 中删除 mysql 表

转载 作者:行者123 更新时间:2023-11-29 15:02:40 24 4
gpt4 key购买 nike

如何在 Rails 中删除选定的表?我想从数据库中删除具有给定前缀的所有表。 PHPMyAdmin 此时会非常有用。

谢谢

最佳答案

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

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
<小时/>

编辑:只是为了跟进,如果问题是有很多表并且您不想将它们全部键入,您可以执行以下操作:

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

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

<小时/>

编辑您的评论:

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

script/generate migration YourMigrationName

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

rake db:migrate

关于mysql - 在 Rails 中删除 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2774898/

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