我有一个已经部署的Gallery风格的应用程序.我的本地版本有许多照片,我只用于本地测试,我绝对不希望它们覆盖我在线的真实照片.
我还有一个git存储库,它只跟踪我的代码并忽略照片.
当我输入cap deploy:迁移它是否使用我的git存储库?即Capistrano是否会用本地照片覆盖我的在线照片,或者它会忽略它们因为git忽略它们?
只需将您的照片放入capistrano的共享文件夹并对其进行符号链接即可.要自动化它,请写一个capistrano食谱,如:
namespace :deploy do after "deploy:setup", "deploy:pictures:setup" after "deploy:symlink", "deploy:pictures:symlink" namespace :pictures do desc "Create the pictures dir in shared path." task :setup do run "cd #{shared_path}; mkdir pictures" end desc "Link pictures from shared to common." task :symlink do run "cd #{current_path}/public; rm -rf pictures; ln -s #{shared_path}/pictures ." end end end
此配方将在"cap deploy:setup"上的capistranos共享文件夹中创建一个图片文件夹,并在每个"cap deploy"上对其进行符号链接.
因此,如果您已经在服务器上创建了图片文件夹并添加了一些图片,则可以在运行命令之前将其迁移:
cd yourapp mv current/public/pictures shared ln -s shared/pictures current/public/pictures
我使用另一个配方来同步多台机器上的共享文件夹的内容,你可以从GitHub获取它