我现在有多个生产 Heroku 应用程序,还有几个正在开发中。
对于正在积极开发的应用程序,我经常在我仍在进行早期开发时运行诸如 heroku run rake db:setup、rake db:seed 之类的命令来重置数据。
在生产应用程序的 heroku 命令提示符下,我可能会意外运行这些命令,这可能会很糟糕。
简而言之,是否可以为 heroku 应用程序 rails 禁用某些 rake 任务(db:reset、db:setup、db:seed)。
我现在有多个生产 Heroku 应用程序,还有几个正在开发中。
对于正在积极开发的应用程序,我经常在我仍在进行早期开发时运行诸如 heroku run rake db:setup、rake db:seed 之类的命令来重置数据。
在生产应用程序的 heroku 命令提示符下,我可能会意外运行这些命令,这可能会很糟糕。
简而言之,是否可以为 heroku 应用程序 rails 禁用某些 rake 任务(db:reset、db:setup、db:seed)。
将任务依赖项添加到适当的“危险”任务中:
task :env_check_development => :environment do
raise Exception.new("CAN ONLY RUN IN DEVELOPMENT") unless ::Rails.env.development?
end
task 'db:migrate' => :env_check_development
然后:
$ RAILS_ENV=test rake db:migrate
rake aborted!
CAN ONLY RUN IN DEVELOPMENT