Deve instalar o pacote git e logar como postgres.
Para logar como postgres, se tiver acesso ao root, logue com o mesmo e faça:
su - postgres
Se não tiver acesso como root mas tiver o sudo, faça:
sudo su - postgres
git clone https://github.com/elppans/pgsql_csv-export-upsert.git
cd pgsql_csv-export-upsert/
Configure o BANCO ATUAL no arquivo para EXPORTAR e o BANCO NOVO no arquivo para IMPORTAR.
Preencha o restante das informações também.
nano banco_psql_export.env
nano banco_psql_import.env
Faça backup dos arquivos após configurar
cp -av banco_psql_export.env banco_psql_export.env.backup
cp -av banco_psql_import.env banco_psql_import.env.backup
psql -l | cat
createdb BancoNOVO
.dmp.gz./Dump_export-schema-only.sh
./Dump_import.sh Arquivo_Dump.dmp.gz
Deve configurar um arquivo com o nome tabelas.txt com uma lista de tabelas a exportar. Uma tabela por linha.
Exemplo:
tabela_1
tabela_2
...
Após configurar o arquivo tabelas.txt, execute este próximo Script para que seja verificado as tabelas dependentes e complete em uma nova lista.
Se estiver usando o arquivo tabelas_full_nozan.txt, pode pular para o próximo item.
./tabelas_ordenadas_completas.sh
Após terminar a execução, deve fazer backup do original e substituir pela nova lista.
cp -a tabelas.txt tabelas.txt.backup
cat ./tabelas_ordenadas_completas.txt >tabelas.txt
Exporte os CSVs, faça um teste para ter certeza e finalmente importe para o novo banco.
./CSV_export.sh
./CSV_import-teste.sh tab_loja tab_loja.csv
./CSV_import-upsert-full.sh
Se achar necessário, renomeie o Banco novo pra algum outro nome
psql -p 5432 -U postgres -c "ALTER DATABASE \"BancoNOVO\" RENAME TO \"BancoRENOMEADO\""
Após importar os CSVs, se forem bem sucedidos, não esquecer de criar um novo backup.
Pode usar esta variavel de versão para versionar o banco ou digitar o número direto. É sua preferencia.
VERSAO="$(psql -d BancoNOVO -c "select * from tab_controle_versao" | grep '2.14' | awk '{print $3}')"
Finalmente, o backup
pg_dump --verbose --no-owner --no-acl --inserts -d BancoNOVO | gzip > "$HOME/BancoNOVO_"$VERSAO"_"$(date +%Y%m%d%H%M)".dmp.gz"
pg_dump --verbose --no-owner --no-acl -Fc BancoNOVO > "$HOME"/BancoNOVO_2.14.181.0_"$(date +%Y%m%d%H%M)".dump.backup