# Capistrano upload?

**URL:** <https://www.ruby-forum.com/t/capistrano-upload/156711>\
**Category:** Deployment\
**Created:** [January 1, 2009, 5:32pm UTC](https://www.ruby-forum.com/t/capistrano-upload/156711 "2009-01-01T17:32:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![captaffy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f04885/32.png) [@captaffy](https://www.ruby-forum.com/u/captaffy)\
**Post date:** [January 1, 2009, 5:32pm UTC](https://www.ruby-forum.com/t/capistrano-upload/156711/1 "2009-01-01T17:32:19Z")

</div>

How do I use the Capistrano upload function in a recipe? It seems simple  
enough, but I can’t get it to work.

Here’s my recipe

```
desc "Copy the development database to the staging database"
task :copy_db_to_staging, :hosts =>'my_staging_server' do
  system "mysqldump -u root -pmypassword my_development_db >
~/db_backups/tg-3-dev-backup.sql"
  system "gzip ~/db_backups/tg-3-dev-backup.sql "
  upload "~/db_backups/tg-3-dev-backup.sql.gz", "/my_dir_for_db_backups"
end
```

It all works until it gets to upload where it fails with

`[]=': undefined method`[]=’ for nil:NilClass (NoMethodError)

So what’s the technique for uploading a file using Capistrano?

Ta

John S.

---

<div class="post-metadata">

**Author:** ![captaffy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f04885/32.png) [@captaffy](https://www.ruby-forum.com/u/captaffy)\
**Post date:** [January 9, 2009, 1:41am UTC](https://www.ruby-forum.com/t/capistrano-upload/156711/2 "2009-01-09T01:41:36Z")

</div>

John S. wrote:

> How do I use the Capistrano upload function in a recipe? It seems simple  
> enough, but I can’t get it to work.
> 
> Here’s my recipe
> 
> ```
> desc "Copy the development database to the staging database"
> task :copy_db_to_staging, :hosts =>'my_staging_server' do
> system "mysqldump -u root -pmypassword my_development_db >
> ~/db_backups/tg-3-dev-backup.sql"
> system "gzip ~/db_backups/tg-3-dev-backup.sql "
> upload "~/db_backups/tg-3-dev-backup.sql.gz", "/my_dir_for_db_backups"
> end
> ```
> 
> It all works until it gets to upload where it fails with
> 
> `[]=': undefined method`[]=’ for nil:NilClass (NoMethodError)
> 
> So what’s the technique for uploading a file using Capistrano?
> 
> Ta
> 
> John S.

try not to use “\_” symbol in file names (and maybe paths)  
also try to specify remote file name like this:

upload “~/db\_backups/tg-3-dev-backup.sql.gz”,  
“/my\_dir\_for\_db\_backups/tg-3-dev-backup.sql.gz”

if it doesn’t work, try to use :via =\> :scp

---

<div class="post-metadata">

**Author:** ![captaffy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/f04885/32.png) [@captaffy](https://www.ruby-forum.com/u/captaffy)\
**Post date:** [January 9, 2009, 5:36am UTC](https://www.ruby-forum.com/t/capistrano-upload/156711/3 "2009-01-09T05:36:39Z")

</div>

> try not to use “\_” symbol in file names (and maybe paths)  
> also try to specify remote file name like this:
> 
> upload “~/db\_backups/tg-3-dev-backup.sql.gz”,  
> “/my\_dir\_for\_db\_backups/tg-3-dev-backup.sql.gz”
> 
> if it doesn’t work, try to use :via =\> :scp

:via =\> :scp gets it to work.

Thanks

John S.
