PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menambahkan tabel pengguna/akun ke Postgres di Django View

Uang saya salah eja nama. Saya perhatikan dalam pesan kesalahan yang Anda miliki

OmniCloud_App_accounts
OmniCloud_App_user

Tabel kedua menggunakan singular. Tidak ada tabel kedua seperti ini secara kebetulan:

OmniCloud_App_users

Juga, menggunakan pengidentifikasi kasus campuran di PostgreSQL adalah sumber reputasi yang bagus di sini di SO. Ini akan menggigit Anda cepat atau lambat. Korban kebodohan itu adalah pengunjung tetap di sini. Tabel apa pun dengan nama ini mungkin - dan Anda lupa tanda kutip ganda di "OmniCloud_App_user" di suatu tempat?

omnicloud_app_user

Entah itu atau transaksi yang menyelamatkan pengguna belum dilakukan. Bisakah Anda hanya membuat pengguna (dan belum ada akun) dan memeriksa apakah itu berakhir di database yang tepat di tabel dan dengan ID yang benar?

Edit:alat untuk mendiagnosis masalah

Jika Anda tahu bahwa pengguna sedang dibuat, maka pertanyaannya adalah:apakah batasan kunci asing user_id_refs_id_468fbcec324e93d2 melihat tempat yang tepat? Basis data yang sama? Skema yang sama? Meja yang sama?

Untuk mengetahui tabel mana yang ada di database Anda, coba kueri berikut (jika Anda memiliki hak istimewa yang diperlukan):

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';

Menampilkan semua tabel di semua skema yang memiliki nama "pengguna", tidak peka huruf besar/kecil. Plus jika tabel memiliki pemicu (bisa menyebabkan masalah Anda) dan berapa banyak baris di dalamnya (perkiraan diperbarui oleh ANALYZE ). Mungkin memberi Anda petunjuk ...

Anda juga dapat menggunakan perintah meta \d dari klien baris perintah standar (terminal interaktif) psql .

Saya akan menjalankan test case dan meminta server postgres mencatat semua yang didapatnya. Tetapkan parameter ini untuk tujuan itu:

set log_statement = 'all';

Panduan tentang parameter logging .

Manual tentang cara menyetel parameter .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menerapkan Pengaturan Multi-Pusat Data untuk PostgreSQL - Bagian Satu

  2. Temukan perbedaan antara stempel waktu dalam hitungan detik di PostgreSQL

  3. PostgreSQL:Temukan izin untuk elemen, jelajahi hingga root

  4. Menutup koneksi klien postgres (pg) di node.js

  5. Bekerja menuju Postgres-XL 9.5