user
é uma palavra reservada e geralmente não é uma boa ideia usar palavras reservadas para identificadores (tabelas, colunas). Se você insistir em fazer isso, você deve colocar o nome da tabela entre aspas duplas:
create table "user" (...);
Mas você sempre precisa usar aspas duplas ao fazer referência à tabela. Além disso, o nome da tabela diferencia maiúsculas de minúsculas.
"user"
é um nome de tabela diferente de "User"
. Se você quiser evitar muitos problemas, use um nome diferente.
users
, user_account
, ... Mais detalhes sobre os identificadores citados podem ser encontrados no manual:http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS