ich einen Shell-Skript zu schreiben (ein cronjob werden), die wird:Postgres: klare gesamte Datenbank vor dem erneuten Anlegen/Wiederbevölkern von Bash-Skript
1: dump meiner Produktionsdatenbank
2 : Importieren Sie das Abbild in meine Entwicklungsdatenbank
Zwischen Schritt 1 und 2 muss ich die Entwicklungsdatenbank löschen (alle Tabellen löschen?). Wie wird dies am besten mit einem Shell-Skript erreicht? Bisher sieht es wie folgt aus:
#!/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 für Menschen in Eile: 'dbname = 'db_name' && dropdb $ dbname && createdb $ dbname && psql -d $ dbname -f dump.sql' – ruuter
diese oneliner Sie Berechtigungen haben erfordert/Drop zu erstellen die Datenbank. Der Ansatz, den der Autor versucht, erfordert keine besonderen Berechtigungen. – ribamar