On the destination box: #\dD+ valid_user List of domains Schema | Name | Type | Modifier | Check --------+------------+------+--------------------------+---------------- ----------------------------------------------------- public | valid_user | name | default "session_user"() | CHECK (has_table_privilege(VALUE, 'pg_user'::text, 'SELECT'::text)) (1 row) On the source: # \dD+ valid_user List of domains Schema | Name | Type | Modifier --------+------------+------+-------------------------- public | valid_user | name | default "session_user"() (1 row) I created valid_user domain on the old system (8.0.3) a long time ago as: CREATE DOMAIN valid_user AS name -- pg_catalog.pg_user.usename%TYPE DEFAULT SESSION_USER CONSTRAINT user_exists CHECK (has_table_privilege(VALUE,'pg_user','SELECT')); COMMENT ON DOMAIN valid_user IS 'valid PostgreSQL user name'; I was also thinking that there is no need to recreate the domain again as a part of migration and hoping that pg_dumpall will take care of it. Anton Pikhteryev > -----Original Message----- > From: Tom Lane [mailto:tgl@xxxxxxxxxxxxx] > Sent: Friday, March 16, 2007 3:34 PM > To: Anton Pikhteryev > Cc: pgsql-admin@xxxxxxxxxxxxxx > Subject: Re: [ADMIN] Problem migrating from 8.0.3 to 8.2.3 > > "Anton Pikhteryev" <apikhteryev@xxxxxxxxxxxx> writes: > > There is that part and doesn't have any errors: > > CREATE TABLE clap_file_info ( > > fileid integer DEFAULT > > nextval('public.clap_file_info_fileid_seq'::text) NOT NULL, > > filename text NOT NULL, > > created timestamp with time zone DEFAULT > > ('now'::text)::timestamp(6) with time zone NOT NULL, > > "owner" valid_user NOT NULL > > ); > > What is a valid_user? (No, I don't want \dT output, I want > the definition of the type.) > > regards, tom lane >