我使用的Linode与Ubuntu 10.04和Capistrano的,独角兽,和Nginx的部署。
我该怎么做相当于heroku run rake db:reset
与此设置? 它是那样简单cap deploy:cold
再次运行迁移?
我已经部署了,想放弃所有数据库并重新运行所有的迁移,但我不知道与此设置运行这样做哪些命令。
我使用的Linode与Ubuntu 10.04和Capistrano的,独角兽,和Nginx的部署。
我该怎么做相当于heroku run rake db:reset
与此设置? 它是那样简单cap deploy:cold
再次运行迁移?
我已经部署了,想放弃所有数据库并重新运行所有的迁移,但我不知道与此设置运行这样做哪些命令。
:我通过写Capistrano的一个小小的文件,您可以复制到运行任意rake任务http://jessewolgamott.com/blog/2012/09/10/the-one-where-you-run-rake-commands-with-capistrano /
一旦安装,您可以:
cap sake:invoke task="db:reset"
对于Capistrano的三无实际删除数据库。 使用bundle exec cap db:reset
namespace :db do
desc 'Resets DB without create/drop'
task :reset do
on primary :db do
within release_path do
with rails_env: fetch(:stage) do
execute :rake, 'db:schema:load'
execute :rake, 'db:seed'
end
end
end
end
end
您可以添加以下到您的deploy.rb文件
namespace :custom do
task :task do
run "cd #{current_path} && bundle exec rake db:reset RAILS_ENV=#{rails_env}"
end
end
然后运行cap custom:task
清除数据库。
如果您正在使用Capistrano的3,考虑使用Capistrano的护栏收集 。
您还可以使用代码直接复制从db.rake从资源库中的文件。
或者,如果你想有一个全面的解决方案来运行一个远程服务器上所有的耙任务,检查出开普敦的宝石。