如题,会是哪里的问题呢?
@tyaccp_guojian 我猜你是用 Capistrano 做部署,每次部署都会清空部署路径里面所有的文件,然后从你的 git repo 拉取最新的代码,因为你的 db 文件没有在 repo 里面,所以每次清空以后,再次拉取的时候,db 文件就会丢失,正确的做法是把 db 文件放在其他的目录,拉取代码完成以后,建立符号链接指向 db 文件
这里有个 SO 的链接,你看下,http://stackoverflow.com/questions/11006525/capistrano-creating-new-db-for-every-deployment
@leomayleomay 请问 after "deploy:create_symlink", "customs:symlink"
这句里面的 create_symlink 是什么?我的部署脚本里面没有这个任务
@tyaccp_guojian 你应该看一下 cap 默认 task 会执行哪些操作;把各个 release 版本公用的常规配置文件移动至 shared 目录下,然后每次部署时建立 symlink 指向 current 目录
namespace :customs do
desc 'Create database symlink'
task :symlink do
run "ln -nfs #{shared_path}/db/production.sqlite3 #{release_path}/db/production.sqlite3"
end
end
after "deploy:create_symlink", "customs:symlink"
加了这个好了,谢谢大家!