user è una parola riservata e di solito non è una buona idea usare parole riservate per gli identificatori (tabelle, colonne).
Se insisti nel farlo devi mettere il nome della tabella tra virgolette:
create table "user" (...);
Ma poi tu sempre è necessario utilizzare le virgolette doppie quando si fa riferimento alla tabella. Inoltre, il nome della tabella fa distinzione tra maiuscole e minuscole. "user" è un nome di tabella diverso da "User" .
Se vuoi risparmiarti un sacco di problemi usa un nome diverso. users , user_account , ...
Maggiori dettagli sugli identificatori tra virgolette possono essere trovati nel manuale:https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS