Meu dinheiro está em um nome com erros ortográficos. Percebo na mensagem de erro que você tem
OmniCloud_App_accounts
OmniCloud_App_user
A segunda tabela usa singular. Não há uma segunda tabela como esta por acaso:
OmniCloud_App_users
Além disso, usar identificadores de maiúsculas e minúsculas no PostgreSQL é uma grande fonte de reputação aqui no SO. Ele vai te morder mais cedo ou mais tarde. As vítimas dessa loucura são regulares aqui. Qualquer tabela com esse nome talvez - e você esqueceu as aspas duplas em
"OmniCloud_App_user"
em algum lugar? omnicloud_app_user
É isso ou a transação que salva o usuário ainda não foi confirmada. Você pode apenas criar o usuário (e nenhuma conta ainda) e verificar se ele acaba no banco de dados correto na tabela e com o ID correto?
Editar:ferramentas para diagnosticar o problema
Se você sabe que os usuários estão sendo criados, a pergunta é:a restrição de chave estrangeira
user_id_refs_id_468fbcec324e93d2
olha no lugar certo? Mesmo banco de dados? Mesmo esquema? Mesma mesa? Para descobrir quais tabelas existem em seu banco de dados, tente a seguinte consulta (se você tiver os privilégios necessários):
SELECT n.nspname AS schema_name
,c.relname AS table_name
,c.relhastriggers
,c.reltuples
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname ~~* '%user%'
AND c.relkind = 'r'
AND nspname <> 'pg_catalog';
Mostra todas as tabelas em todos os esquemas que possuem "usuário" no nome, não diferenciando maiúsculas de minúsculas. Além disso, se a tabela tiver gatilhos (poderia causar seu problema) e quantas linhas estão nele (estimativa atualizada por
ANALYZE
). Pode te dar uma pista... Você também pode usar o meta-comando
\d
do cliente de linha de comando padrão (terminal interativo) psql
. Eu executaria um caso de teste e faria com que o servidor postgres registrasse tudo o que obtivesse. Defina este parâmetro para essa finalidade:
set log_statement = 'all';
O manual sobre parâmetros de log .
O manual sobre como definir parâmetros .