ho fatto backup del database sul server diverso e che ha il ruolo diverso da quello che ho bisogno, con questo comando:Postgresql - database di backup e ripristino su proprietario diverso?
pg_dump -Fc db_name -f db_name.dump
Poi ho copiato backup su un altro server in cui ho bisogno di ripristinare il database, ma non v'è tale proprietario che è stato usato per quel database. Diciamo che il database ha il proprietario owner1
, ma su un altro server ho solo owner2
e ho bisogno di ripristinare quel database e cambiare proprietario.
Quello che ho fatto su un altro server per il ripristino:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
Ma quando il ripristino viene eseguito ottengo questi errori:
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
Come posso specificare in modo che sarebbe cambiare il proprietario? O è impossibile?
'pg_dump --no-owner' dovrebbe anche farlo –
La mia preferenza è quella di rinviare questo genere di decisioni fino al ripristino. Se lo fai nella fase di scarico, significa che non puoi cambiare idea senza esportare. Farlo al ripristino significa che le opzioni sono lasciate aperte nel caso in cui si decida che si dovrebbe aver creato quel ruolo mancante ecc. – Gary
Quindi, se voglio cambiare proprietario, devo eseguire il backup senza proprietario? Perché pensavo di poter cambiare proprietario durante il restauro. Ma anche impostando '--role' su un altro proprietario, stava ancora cercando di usare il proprietario originale (ma poi non ho usato' --no-owner'. – Andrius