i-educar-restore
Este é um script para auxiliar no download e na restauração de bases para o sistema i-Educar. Para que ele funcione são feitas algumas suposições:
- Os backups são guardados no serviço da AWS S3;
- É feito um backup diário da base;
- O caminho do backup envolve o nome da base.
Como instalar
Faça download do script na lista de releases:
https://github.com/eberfreitas/i-educar-restore/releases
Após ter feito o download, dê permissão de execução para o arquivo:
$ chmod +x restore.phar
E se quiser usar o script globalmente, basta movê-lo para uma pasta em seu
path
. Ex.:
$ sudo mv restore.phar /usr/local/bin/restore
Depois disso faça uma cópia do arquivo de configurações que você encontra aqui.
Coloque numa pasta qualquer, renomeie para config.ini
e altere os valores de
acordo com sua realidade. Da mesma pasta onde está este arquivo execute o
script:
$ restore -b ieducar
Este comando irá restaurar o banco de dados ieducar
. Se você quiser rodar o
script de outra pasta você ainda pode informar o caminho do arquivo de
configuração assim:
$ restore -b ieducar -c /path/do/config.ini
Ou se preferir use uma configuração global colocando o arquivo em:
~/.config/i-educar-restore/config.ini
Desta forma, independentemente de onde estiver, estas configurações serão utilizadas sem a necessidade de especificar o arquivo na linha de comando.
Ao informar o arquivo de configuração diretamente ele pode ter qualquer nome. E se você quiser pode executar o script sem qualquer arquivo de configuração. Basta informar todas as chaves de configuração conforme descrito abaixo:
$ restore --help
usage: restore [<options>]
Database restore tool for i-Educar.
OPTIONS
--aws-bucket AWS bucket (can be informed in the config file).
--aws-key AWS key (can be informed in the config file).
--aws-prefix AWS search prefix (can be informed in the config file).
--aws-region AWS prefered region (can be informed in the config
file).
--aws-secret AWS secret (can be informed in the config file).
--base, -b Database name to be restored. Ex.: saopaulo.
--config-file, -c Config file path. Defaults to "config.ini" in the
current directory.
--date, -d Backup date. Defaults to current date.
--help, -? Display this help.
--host, -h DB host (can be informed in the config file).
--include-audit, -i Restore with audit tables. They are not restored by
default.
--newbase, -B New database to be created. Defaults to --base.
--password, -P DB password (can be informed in the config file).
--port, -p DB port (can be informed in the config file).
--user, -u DB user (can be informed in the config file).
$ restore -b ieducar
Configurações
Em geral as chaves da configuração são auto explicativas mas algumas configurações tem comportamento especial:
Chave | Descrição |
---|---|
date | Por padrão o script irá buscar por backups na data atual mas você pode informar alguma outra data com esta chave. Ex. --date 2019-01-01 . Independente do formato que você usar para informar a data, internamente ela será convertida para o formato YYYY-MM-DD. |
aws-prefix | Quando o sistema for buscar pelo arquivo de backup no S3 ele irá usar esta chave como parâmetro para a busca. Por se tratar de um valor dinâmico você pode usar placeholders que serão substituidos pelos valores de outras chaves da configuração. Ex.: --aws-prefix backup/ieducar_{date} . Neste exemplo, na data 12/12/2018 o prefixo será backup/ieducar_2018-12-12 . |
newbase | Por padrão o sistema irá baixar a base sendo buscada e irá restaurar com o mesmo nome. Isso quer dizer que se o banco já existir ele será sobrescrevido. Para evitar isto você pode informar um nome alternativo para a nova base. Ex.: --newbase nova_restauracao . A exemplo da chave aws-prefix você também pode usar placeholders no nome da nova base. Ex.: --newbase ieducar_{year}_{month}_{day} . |
Além das chaves de configuração informadas acima, internamente você também tem acesso às seguintes chaves para serem usadas como placeholders:
year
month
day
Configuração global
Além de poder informar todos os parâmetros pela linha de comando, através de um
arquivo de configuração na pasta onde o script está rodando ou em outro local
indicado pela opção --config-file
você pode criar uma configuração global em:
~/.config/i-educar-restore/config.ini
Assim o script irá funcionar com estas configurações não importando a pasta de onde for chamado.
Gerando o phar
Para gerar um arquivo *.phar a partir do repositório e recomendado usar o Box.
Após instalar o Box (via phar ou como um pacote composer global), basta rodar o seguinte comando na raíz do projeto:
$ box build