幸运的是,我终于成功地通过自动部署成功设置了服务器。
现在,当我进行部署时会发生一个小问题...
进行部署时,数据库将被迁移,但事实是,即使在服务器重新启动后,数据库仍保持“缓存”状态,并且直到我转到服务器并重新启动服务器后,才能识别迁移所做的任何更改。 mysql服务。
有关如何解决此问题的任何想法?
提前致谢。
编辑1:
这是一个迁移示例。
class AddRoleToUsers < ActiveRecord::Migration
def change
add_column :users, :role, :string, default: 'member'
end
end
但是,您如何知道这些更改未被识别? 你能举个例子吗?
在生产环境中,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