ruby-on-rails - rake 数据库 :reset Drop all tables but not database

标签 ruby-on-rails postgresql rake

我需要在不删除数据库的情况下删除数据库中的所有表,因为该数据库的用户没有创建数据库的权限。

删除所有表但不删除实际数据库的最佳方法是什么?

此外,我们使用 rake db:seed 将一些条目添加到其中一个表中,因此我不想使用种子文件。

最佳答案

这是我在查看 Truncate 方法后最终想出的解决方案。

namespace :db do
  desc "Erase all tables"
  task :clear => :environment do
    conn = ActiveRecord::Base.connection
    tables = conn.tables
    tables.each do |table|
      puts "Deleting #{table}"
      conn.drop_table(table)
    end
  end
end

关于ruby-on-rails - rake 数据库 :reset Drop all tables but not database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23226900/

相关文章:

postgresql - 将序列值重置为 1

ruby-on-rails - 在 rake 任务中使用 lib/assets 中的哈希对象

ruby-on-rails-3 - rake : "development database is not configured"的问题

ruby - 将任务依赖项添加到 Rake::TestTask

ruby-on-rails - 为什么在保存到数据库时 "created_at"时间错误?

ruby-on-rails - websense 和防火墙后面的 Windows 7 中的 Ruby on Rails 问题

c - postgresql c 自定义函数中的奇怪行为

sql - 愚蠢的 SQL Q : Count from a query

html - 如何生成与 Rails 应用程序的 html 文件匹配的 Assets ?

sql - rails : How to Select Records Which Don't Have a Specific Related (associated) Object (SQL EXISTS brief how-to)