2009-03-17 4 views
1

J'ai cette commande capistrano.Problème de symétrie Capistrano?

 
    task :symlink_shared do 
     run "rm -rf #{current_path}/config/database.yml" 
     run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml" 
     run "rm -rf #{current_path}/config/app_config.yml" 
     run "ln -nfs #{shared_path}/config/app_config.yml #{release_path}/config/app_config.yml" 

     run "rm -rf #{current_path}/public/records" 
     run "ln -nsf #{shared_path}/uploads/records #{release_path}/public/records" 
     run "rm -rf #{current_path}/public/documents" 
     run "ln -nsf #{shared_path}/uploads/documents #{release_path}/public/documents" 
     run "rm -rf #{current_path}/public/pdf_xmls" 
     run "ln -nsf #{shared_path}/uploads/pdf_xmls #{release_path}/public/pdf_xmls" 
     run "rm -rf #{current_path}/public/pdf_xml_files" 
     run "ln -nsf #{shared_path}/uploads/pdf_xml_files #{release_path}/public/pdf_xml_files" 
    end 

Tout fonctionne et les liens symboliques sont également créés. Mais le lien symbolique de la dernière commande crée le lien symbolique pdf_xml_files une étape à l'intérieur. , c'est-à-dire qu'il crée un répertoire nommé pdf_xml_files et à l'intérieur, le lien symbolique pdf_xml_files est créé. Besoin d'aide?

+0

Pouvez-vous imprimer current_path, shared_path et release_path avant que le lien ne soit créé et éditer votre réponse avec les résultats? –

+0

Voici le pastie de la tâche ci-dessus de bouchon couru. http://pastie.org/426393 – Autodidact

+0

Avez-vous eu de la chance avec ça? – Andy

Répondre

2

Il semble que le répertoire/home/deploy/weddingcards/releases/20090325105337/public/pdf_xml_files existe déjà.

La commande ln trouve ce répertoire et l'oblige à créer un lien symbolique vers votre cible dans le répertoire. Si vous supprimez/home/deploy/weddingcards/releases/20090325105337/public/pdf_xml_files, puis exécutez la même commande, elle doit faire ce que vous voulez.

Alternativement vous pouvez changer la commande:

run "ln -nsf #{shared_path}/uploads/pdf_xml_files #{release_path}/public/" 

et il va créer le lien symbolique dans le répertoire public.

+0

Je vais vérifier cela et répondre plus tard. – Autodidact

Questions connexes