Class: DockerManager::Commands::DbPull
- Defined in:
- lib/dockermanager/commands/db_pull.rb
Instance Method Summary collapse
Methods inherited from Base
Constructor Details
This class inherits a constructor from DockerManager::Commands::Base
Instance Method Details
#run ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/dockermanager/commands/db_pull.rb', line 4 def run remote_dump_file = "#{config.env_remote_directory}/dump.sql.gz" local_dump_file = "#{config.project_root_path}/tmp/#{File.basename(remote_dump_file)}" remote_postgres_db_container = config.env_remote_postgres_db_container local_postgres_db_container = config.env_local_postgres_db_container project_root_path = config.project_root_path on config.env_host do execute("docker exec -t #{remote_postgres_db_container} bash -c 'PGPASSWORD=$POSTGRES_PASSWORD pg_dump -h $POSTGRES_HOST -U $POSTGRES_USER $POSTGRES_DB --no-acl --no-owner' | gzip - -c --stdout > #{remote_dump_file}") download!(remote_dump_file, local_dump_file) end run_locally do execute(:rm, "-f", "#{project_root_path}/tmp/dump.sql") execute("gunzip #{local_dump_file}") # condition pg_stat_activity.datname = \'#{local_database}\' removed execute("docker exec -i #{local_postgres_db_container} bash -c 'psql -U $POSTGRES_USER -d $POSTGRES_DB -c \"SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid()\"'") execute("docker exec -i #{local_postgres_db_container} bash -c 'dropdb -U $POSTGRES_USER $POSTGRES_DB'") execute("docker exec -i #{local_postgres_db_container} bash -c 'createdb -U $POSTGRES_USER $POSTGRES_DB'") execute("docker exec -i #{local_postgres_db_container} bash -c 'psql -U $POSTGRES_USER -d $POSTGRES_DB' < #{project_root_path}/tmp/dump.sql") execute(:rm, "#{project_root_path}/tmp/dump.sql") end end |