Alors étant bien compris que j'ai rien pigé au script ou à ce qu'il devait fait, ni fait de postgres de ma vie...
Voici ma tentative (incomplète, tu as pas tout donné) :
#!/bin/bash
#SCRIPT de sauvegarde de la table clients
#A exécuter en tant que postgres ou via "sudo -u postgres script.sh"
PGPATH="/usr/bin"
QUIET="-q"
#### TODO : VARIABLE A CHANGER SI BESOIN
CPV_DB_NAME="MYDATABASE" #Nom de la base de données cible
CPV_DB_PORT=5544 #Numéro de port associé au cluster
REST_D="/mnt/MyPC/DUMP" #Dossier ou se trouve le .dump
function sql_query(){
psql -U postgres -p "$CPV_DB_PORT" -d "$CPV_DB_NAME" -c "$1"
}
#1)
sql_query "Alter table client add column mise_a_jour date;"
#2)
sql_query "update tracks_transmitter set mise_a_jour = (select DETECTEDLAST from client where oid = _oid and wid = _wid) where mise_a_jour is null;"
#3)
pg_dump -p $CPV_DB_PORT -d $CPV_DB_NAME -a -F c -t clients --disable-triggers --verbose -f /mnt/MyPC/DUMP/clients-a-c.dump
#4)
sql_query "alter table clients drop constraint fk;"
sql_query "alter table clients rename tbl-client;"
#TODO:Créer la table avec la nouvelle colonne et sans la contrainte de Foreign Key
#5)
pg_restore -p $CPV_DB_PORT -d $CPV_DB_NAME -a -F c -t clients --disable-triggers --verbose -f /mnt/MyPC/DUMP/clients-a-c.dump
#6)
rm client-a-c.dump "nom du fichier dump"
Dernière modification par otyugh (30-05-2018 01:35:54)