With 12factor style environment configs, it’s a very easy to accidentally connect to your production database when you think you’re connecting to dev. Here’s a simple guard you can add to make sure your DATABASE_URL
isn’t somehow pointed to someplace it’s not supposed to (assuming you’re using Amazon AWS):
bash:
if [[ ${DATABASE_URL} == *"amazonaws"* ]]; then exit -1; fi
Python:
if 'amazonaws' in os.environ['DATABASE_URL']: exit('Cannot be run against a production database')
Django:
if 'amazonaws' in settings.DATABASES['default']['HOST']: raise CommandError('Cannot be run against a production database')
(thanks to x110dc for the bash syntax and 12factor link)