Both PostgreSQL and Oracle put limits on the lengths of database names that we've run into at one point or another, and while so far that's been limited to the names of things whose names don't matter much (e.g. foreign key constraints), future functionality that depends on dynamic table creation will make it more likely for this to extend to more visible names.
We should adopt a scheme for truncating database names while retaining uniqueness (e.g. "replace any characters after the Nth with a length-M hash of them"), and apply it to all symbols. This should not affect the names used in any Python code.