Estoy escribiendo un script de shell (se convertirá en una tarea programada) que:Postgres: clara base de datos completa antes de volver a crear/repoblar de escritura del golpe
1: volcar mi base de datos de producción
2 : importar el volcado a mi base de datos de desarrollo
Entre los pasos 1 y 2, necesito borrar la base de datos de desarrollo (soltar todas las tablas?). ¿Cómo se logra esto mejor a partir de un script de shell? Hasta el momento, parece que esto:
#!/bin/bash
time=`date '+%Y'-'%m'-'%d'`
# 1. export(dump) the current production database
pg_dump -U production_db_name > /backup/dir/backup-${time}.sql
# missing step: drop all tables from development database so it can be re-populated
# 2. load the backup into the development database
psql -U development_db_name < backup/dir/backup-${time}.sql
oneliner para gente con prisa: 'dbname = 'nombre_base_de_datos' && && dropdb $ nombredb createdb $ && nombredb psql -d $ nombredb -f dump.sql' – ruuter
este oneliner requiere que tenga permisos para crear/gota la base de datos. el enfoque que intenta el autor no requiere privilegios especiales. – ribamar