Sha256: 2b36a78c46ffd32e169cc4e6e5e9d555854eaa090f5827ffb12bbe80558fe730

Contents?: true

Size: 1.93 KB

Versions: 11

Compression:

Stored size: 1.93 KB

Contents

namespace :db do
  namespace :local do
    desc "Export the local database (to db.sql by default)"
    task :backup do
      run_locally do
        database_dump(fetch(:craft_local_env), fetch(:craft_local_db_dump))
      end
    end

    desc "Import into the local database (from db.sql by default)"
    task :import do
      run_locally do
        database_restore(fetch(:craft_local_env), fetch(:craft_local_db_dump))
      end
    end
  end

  desc "Download a backup of the remote database"
  task :backup do
    on release_roles(fetch(:craft_deploy_roles)) do
      # Export remote dump file
      remote_backup_file = "#{fetch(:deploy_to)}/shared/db.sql"
      database_dump(fetch(:craft_remote_env), remote_backup_file)

      local_backup_file = backup_file_name
      download! remote_backup_file, local_backup_file

      # Remove temp file
      execute "rm #{remote_backup_file}"

      set :backup_filename, local_backup_file
    end
  end

  desc "Imports the remote database into the local environment"
  task :pull do
    invoke 'db:backup'

    run_locally do
      database_restore(fetch(:craft_local_env), fetch(:backup_filename))
    end
  end

  desc "Export the local database, overwriting the remote server"
  task :push do
    # Save the remote database
    invoke 'db:backup'

    # Save the local database
    invoke 'db:local:backup'

    on release_roles(fetch(:craft_deploy_roles)) do
      # Upload local dump file
      uploaded_file = "#{fetch(:deploy_to)}/shared/db.sql"
      upload! fetch(:craft_local_db_dump), uploaded_file

      confirm <<-EOF
Are you sure you want to drop and recreate the remote database?

A backup of the remote database has been taken in the file #{fetch(:backup_filename)} but you should verify this is correct before proceeding.
      EOF

      # Import into production
      database_restore(fetch(:craft_remote_env), uploaded_file)

      # Remove temp file
      execute "rm #{uploaded_file}"
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
capistrano-craft-0.3.6 lib/capistrano/tasks/db.rake
capistrano-craft-0.3.5 lib/capistrano/tasks/db.rake
capistrano-craft-0.3.4 lib/capistrano/tasks/db.rake
capistrano-craft-0.3.3 lib/capistrano/tasks/db.rake
capistrano-craft-0.3.2 lib/capistrano/tasks/db.rake
capistrano-craft-0.3.1 lib/capistrano/tasks/db.rake
capistrano-craft-0.3.0 lib/capistrano/tasks/db.rake
capistrano-craft-0.2.2 lib/capistrano/tasks/db.rake
capistrano-craft-0.2.1 lib/capistrano/tasks/db.rake
capistrano-craft-0.2.0 lib/capistrano/tasks/db.rake
capistrano-craft-0.1.4 lib/capistrano/tasks/db.rake