Skip to content

5. Написать скрипт дампа данных на локальную машину. #8

@the-teacher

Description

@the-teacher

Скрипт должен принимать

  • Адрес сервера с которого скачиваются данные
  • Логин
  • Пароль
  • Вероятно путь к SSH ключу

Данные должны сохраняться в рабочем каталоге проекта в yaml файле, чтобы не запрашивать их при повторном запуске скрипта.

yaml с данными должен быть исключен из GIT чтобы случайно его не опубликовать. Как вариант файл можно сохранять в домашнем каталоге пользователя.

Команды для формирования дампа на сервере

$ mkdir -p ~/DUMPS
$ rm -rf ~/.pgpass
$ echo localhost:5432:rails_app_db:rails:${PASSWORD} > ~/.pgpass
$ chmod 0600 ~/.pgpass
$ cd ~/DUMPS
$ pg_dump --format=custom --host=localhost --username=rails --file=open-cook.ru.rails_app_db.${DUMP_TIME_STAMP}.pq.sql rails_app_db
$ rm -rf ~/.pgpass
$ mkdir -p ~/DUMPS

$scp -o 'ForwardAgent=yes' -i ~/.ssh/mac_air_rsa rails@100.100.100.100:~/DUMPS/open-cook.ru.rails_app_db.${DUMP_TIME_STAMP}.pq.sql ~/DUMPS/open-cook.ru.rails_app_db.${DUMP_TIME_STAMP}.pq.sql

Загрузить в PG на локалке

pg_restore -h localhost -d rails_app_db -U rails ~/DUMPS/open-cook.ru.rails_app_db.${DUMP_TIME_STAMP}.pq.sql

Скопировать файлы через RSync

$ mkdir -p ../public
$ rsync -e 'ssh -i ~/.ssh/mac_air_rsa' -chavzPr rails@100.100.100.100:/home/rails/www/open-cook.ru/production/SHARED/public/uploads ./public

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions