To start off, I am a beginner when it comes to Rails and Capistrano.
My development environment works without any issues and I wanted to push first as a test environment on a local virtual machine with the same setup as my production server.

I chose Capistrano to handle the deployment and setup everything according to the tutorial of the official website.

The specs are:

* ubuntu
* ruby-2.0.0-p247
* rails 4.1.0.beta1
* capistrano 3
* phusion passenger

My Gemfile:

```
gem 'rails', '4.1.0.beta1'
gem 'rails-i18n', '~> 4.0.0'

group :assets do
  # Use SCSS for stylesheets
  gem 'sass-rails', '4.0.2'

  gem 'uglifier', '>= 1.3.0'
end

gem 'bourbon'
gem 'foundation-rails'

group :development do

  gem 'capistrano', '~> 3.0.1'
  gem 'net-ssh', '~> 2.7.0'
  gem 'capistrano-rails', '~> 1.1.0'
  gem 'capistrano-bundler'
  gem 'capistrano-rvm'
  gem 'capistrano-rbenv', "~> 2.0"
end

group :development, :test do
  gem 'sqlite3'
  gem 'rspec-rails'
end

group :test, :production do
#  gem 'mysql2'
end

gem 'jquery-rails'

```

My deploy.rb file:

```
set :application, 'appliname'
set :deploy_user, 'deploy'
set :use_sudo,    false
set :repo_url, 'git@server:path/to/project.git'
set :branch, "master"

set :scm, :git

# set :format, :pretty
# set :log_level, :debug
set :pty, true

# setup rvm.
set :rbenv_type, :system
set :rbenv_ruby, 'ruby-2.0.0-p247'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w{rake gem bundle ruby rails}

# files we want symlinking to specific entries in shared.
set :linked_files, %w{config/database.yml config/private_env.yml}

# dirs we want symlinking to shared
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}

# set :default_env, { path: "/opt/ruby/bin:$PATH" }
set :keep_releases, 5

namespace :deploy do

  # make sure we're deploying what we think we're deploying
  # only allow a deploy with passing tests to deployed
  # before :deploy, "deploy:run_tests"

  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      # Your restart mechanism here, for example:
      execute :touch, release_path.join('tmp/restart.txt')
    end
  end

  after :restart, :clear_cache do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
      # Here we can do anything such as:
       within release_path do
         execute :rake, 'cache:clear'
       end
    end
  end

  # compile assets locally then rsync
  # after 'deploy:symlink:shared', 'deploy:compile_assets'
  # after :finishing, 'deploy:cleanup'

end

```

deploy/test.rb

```
set :stage, :test

server 'testserver.local', user: fetch(:deploy_user), roles: %w{web app db}
set :deploy_to, '/home/project/public'
set :enable_ssl, false

```

My database.yml
At first I wanted to use MySql even for my test environment, but for the deployment debugging sake, I temporary put sqlite.

```
default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

test: &test
  <<: *default
  database: db/test.sqlite3
#  adapter: mysql2
#  encoding: utf8
#  reconnect: true
#  database: ENV['database']
#  pool: 5
#  username: ENV['username']
#  password: ENV['password']
#  host: localhost

production:
  <<: *test

```

And finally the error message after running the following deply command:

```
cap test deploy

```

Error:

```
DEBUG [f012bc9e] Command: cd /home/project/public/releases/20140319125218 && ( RAILS_ENV=test bundle exec rake assets:precompile )
DEBUG [f012bc9e]    rake aborted!
DEBUG [f012bc9e]
DEBUG [f012bc9e]    Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activerecord-4.1.0.beta1/lib/active_record/connection_adapters/connection_specification.rb:58:in `rescue in resolve_hash_connection'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activerecord-4.1.0.beta1/lib/active_record/connection_adapters/connection_specification.rb:55:in `resolve_hash_connection'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activerecord-4.1.0.beta1/lib/active_record/connection_adapters/connection_specification.rb:46:in `resolve_string_connection'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activerecord-4.1.0.beta1/lib/active_record/connection_adapters/connection_specification.rb:30:in `spec'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activerecord-4.1.0.beta1/lib/active_record/connection_handling.rb:39:in `establish_connection'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activerecord-4.1.0.beta1/lib/active_record/railtie.rb:126:in `block (2 levels) in <class:Railtie>'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/lazy_load_hooks.rb:28:in `block in on_load'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/lazy_load_hooks.rb:27:in `each'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/lazy_load_hooks.rb:27:in `on_load'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activerecord-4.1.0.beta1/lib/active_record/railtie.rb:124:in `block in <class:Railtie>'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/railties-4.1.0.beta1/lib/rails/initializable.rb:30:in `instance_exec'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/railties-4.1.0.beta1/lib/rails/initializable.rb:30:in `run'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/
DEBUG [f012bc9e]    ruby/2.0.0/gems/railties-4.1.0.beta1/lib/rails/initializable.rb:55:in `block in run_initializers'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/railties-4.1.0.beta1/lib/rails/initializable.rb:54:in `run_initializers'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/railties-4.1.0.beta1/lib/rails/application.rb:285:in `initialize!'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/releases/20140319125218/config/environment.rb:8:in `<top (required)>'
DEBUG [f012bc9e]
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `block in require'
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:232:in `load_dependency'
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/railties-4.1.0.beta1/lib/rails/application.rb:261:in `require_environment!'
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/railties-4.1.0.beta1/lib/rails/application.rb:344:in `block in run_tasks_blocks'
DEBUG [f012bc9e]    /home/project/public/shared/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.1/lib/sprockets/rails/task.rb:54:in `block (2 levels) in define'
DEBUG [f012bc9e]    Tasks: TOP => environment
DEBUG [f012bc9e]
DEBUG [f012bc9e]    (See full trace by running task with --trace)
DEBUG [f012bc9e]
cap aborted!
rake stdout: Nothing written
rake stderr: Nothing written
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/command.rb:94:in `exit_status='
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:142:in `block (4 levels) in _execute'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:551:in `call'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:551:in `do_request'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:561:in `channel_request'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:465:in `dispatch_incoming_packets'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:221:in `preprocess'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:205:in `process'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `block in loop'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `loop'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `loop'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:269:in `wait'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:164:in `block (2 levels) in _execute'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:514:in `call'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/channel.rb:514:in `do_open_confirmation'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:545:in `channel_open_confirmation'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:465:in `dispatch_incoming_packets'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:221:in `preprocess'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:205:in `process'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `block in loop'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `loop'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.8.0/lib/net/ssh/connection/session.rb:169:in `loop'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:166:in `block in _execute'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:123:in `tap'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:123:in `_execute'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:66:in `execute'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/capistrano-rails-1.1.1/lib/capistrano/tasks/assets.rake:59:in `block (6 levels) in <top (required)>'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/abstract.rb:89:in `with'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/capistrano-rails-1.1.1/lib/capistrano/tasks/assets.rake:58:in `block (5 levels) in <top (required)>'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/abstract.rb:81:in `within'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/capistrano-rails-1.1.1/lib/capistrano/tasks/assets.rake:57:in `block (4 levels) in <top (required)>'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:54:in `instance_exec'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/backends/netssh.rb:54:in `run'
/Users/username/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.3.0/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
Tasks: TOP => deploy:assets:precompile
(See full trace by running task with --trace)
The deploy has failed with an error: #<SSHKit::Command::Failed: rake stdout: Nothing written
rake stderr: Nothing written

```

So basically, with either the MySql2 gem or sqlite gem, I have the same kind of error...
I am completely lost and have been looking over the web and did multiple tests with no avail.

Obviously I have run on the dev computer 'bundle update' and 'bundle install' when necessary.
But I suppose that all these commands are run automatically by Capistrano on deployment.

So if a good soul could help with this it would make me very happy and I might stop losing my hair (or not) :)

If more info is needed, please ask!
Thank you