gpt4 book ai didi

ruby-on-rails - 为什么我不能成功使用 rake db :drop or rake db:purge?

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:53 26 4
gpt4 key购买 nike

有效的命令:

  • rake 数据库:迁移
  • rake 数据库:回滚
  • rake db:seed

不需要的命令:

  • rake db:drop
  • rake db:drop:all
  • rake 数据库:迁移:重置
  • rake 数据库:清除

如果我使用 db:rollback 的次数足够多(或使用 STEP),我的数据库会成功删除,但当我使用 db:drop/db:drop:all 时则不会。 db:migrate:reset 和 db:purge 保留所有数据不变。跟踪运行,查看 development.log、系统日志并通过数据库监视器查看数据库查询(没有针对这些命令运行的 SQL 查询。)也没有错误。

运行:

  • rails 4.2
  • postgres 9.4
  • 中央操作系统 7

最佳答案

如果连接存在,则不能删除 PG 数据库。

除非你使用这个魔法:

# config/initializers/postgresql_database_tasks.rb
module ActiveRecord
module Tasks
class PostgreSQLDatabaseTasks
def drop
establish_master_connection
connection.select_all "select pg_terminate_backend(pg_stat_activity.pid) from pg_stat_activity where datname='#{configuration['database']}' AND state='idle';"
connection.drop_database configuration['database']
end
end
end
end

将其放入您的初始化器中并运行此命令:

rake environment db:drop

环境参数让 rake 检查初始值设定项。

关于ruby-on-rails - 为什么我不能成功使用 rake db :drop or rake db:purge?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27844138/

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