user
é uma palavra reservada e geralmente não é uma boa ideia usar palavras reservadas para identificadores (tabelas, colunas).
Se você insiste em fazer isso, você deve colocar o nome da mesa entre aspas duplas:
create table "user" (...);
Mas então 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 Budapical.html#SQL-SYNTAX-IDENTIFIERS