0

I routinely import a copy of the production database, replacing my development database.

However, during development, I don't want t accidently email any production users. (their emails are stored in the email column of the users table)

How can I update all the email addresses so that if I accidentally email them, it goes to nowhere

if would also be nice if the original email is somehow embedded in the faked email.

american-ninja-warrior
  • 7,397
  • 11
  • 46
  • 80

1 Answers1

0

Given: the email column holds one email (no commas, no monkey hacks, hidden commands - just an email). Then:

update users set email=email||'.fail';

Will update all email, adding .fail to the end where email is not null, if it is null, it will remain such. To revert back, run:

update users set email=substring(email,1,length(email)-5) 
  where substring(email from '.....$') = '.fail';

example of dataset:

t=# with users(email) as (values('pop@pop.pop'||'.fail'),(null))
select substring(email,1,length(email)-5) from users where substring(email from '.....$') = '.fail';
  substring
-------------
 pop@pop.pop
(1 row)
Vao Tsun
  • 47,234
  • 13
  • 100
  • 132