Could I get more exactly error of IntegrityError?
Hello, I wrote some code to pick out `duplicate key` and `NOT NULL` exception from IntegrityError, by text match.

```python

class PeeweeContext:
    def __init__(self, db):
        self.db = db

    def __enter__(self):
        pass

    def __exit__(self, exc_type, exc_val, exc_tb):
        db = self.db
        if isinstance(exc_val, peewee.IntegrityError):
            db.rollback()
            if exc_val.args[0].startswith('duplicate key'):
                raise AlreadyExists()
            elif exc_val.args[0].startswith('NOT NULL constraint failed'):
                raise NotNullConstraintFailed()
        elif isinstance(exc_val, peewee.DatabaseError):
            db.rollback()
            logger.error("database error", exc_val)
            raise ResourceException("database error")
```


But the code not work on a server with PG 11.3, because exception info was printed by chinese.

```
peewee.IntegrityError: 错误:  重复键违反唯一约束"domain_user_id_name"
DETAIL:  键值"(user_id, name)=(\x5ab0d481cbc00000, 'test')" 已经存在
```

```
postgres@server:~$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.UTF-8"
...
```

So could I get more exactly error to avoid text match?
Thanks
