humanmade / go-anonymize-mysqldump

Allows you to pipe data from mysqldump or an SQL file and anonymize it.
GNU General Public License v3.0
60 stars 26 forks source link

[BUG] Generated emails & usernames aren't unique #14

Open psociety opened 3 years ago

psociety commented 3 years ago

If you have a UNIQUE index set for those fields, anonymize will break the dump as there's no option for truly unique emails/usernames.

My work around has been to add new transformation functions:

// add these imports
import (
    "strconv"
    "time"
)

func generateUniqueEmail(value *sqlparser.SQLVal) *sqlparser.SQLVal {
    return sqlparser.NewStrVal([]byte(strconv.Itoa(int(time.Now().UnixNano())) + "@gmail.com"))
}
func generateUniqueUsername(value *sqlparser.SQLVal) *sqlparser.SQLVal {
    return sqlparser.NewStrVal([]byte(faker.Internet().UserName() + strconv.Itoa(int(time.Now().UnixNano()))))
}