Capistrano部署到数据库

问题描述 投票:0回答:1

幸运的是,我终于成功地通过自动部署成功设置了服务器。

现在,当我进行部署时会发生一个小问题...

进行部署时,数据库将被迁移,但事实是,即使在服务器重新启动后,数据库仍保持“缓存”状态,并且直到我转到服务器并重新启动服务器后,才能识别迁移所做的任何更改。 mysql服务。

有关如何解决此问题的任何想法?

提前致谢。

编辑1:

这是一个迁移示例。

class AddRoleToUsers < ActiveRecord::Migration
  def change
    add_column :users, :role, :string, default: 'member'
  end
end
mysql ruby-on-rails-3 deployment migration capistrano
1个回答
1
投票

但是,您如何知道这些更改未被识别? 你能举个例子吗?
在生产环境中,Rails可以缓存一些数据库答复,但是重新启动Rails服务器应该清除所有这些缓存。 所以看来问题出在mysql部分的某个地方(我个人只是在使用Postgres,所以对mysql不太了解)。 也许解决方案是向Capistrano任务添加一些mysql重新启动命令?
在Capistrano 3.1中,它类似于(假设您正在运行linux服务器):

task :restart do
    on roles(:app), in: :sequence, wait: 5 do
       execute :touch, release_path.join('tmp/restart.txt')
       execute "sudo /etc/init.d/mysql restart"
    end
  end
© www.soinside.com 2019 - 2024. All rights reserved.