PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Polecenie inspectdb Django 1.8 nie widzi widoków PostgreSQL zgodnie z dokumentacją

Od Django 1.10 możesz po prostu nazwać pojedynczy widok jako parametr swojej inspectdb polecenie:

python well/manage.py inspectdb hospitalizations_over_30_days

Domyślna inspectdb wygeneruje tylko pliki models.py dla tabel, ale modele dla widoków można wygenerować indywidualnie, nadając im nazwy.

W Django 2.1 i nowszych, jeśli chcesz inspectdb do generowania modeli dla wszystkich tabel i widoki, użyj inspectdb --include-views opcja, którą przyczyniłem do Django 2.1 w wyniku tego pytania!

python well/manage.py inspectdb --include-views

Aby wygenerować modele zarówno dla tabel, jak i widoków w Django 2.0 i niższych, musisz edytować kod źródłowy Django. W Django 2.0 zmień line.py w django/core/management/commands/inspectdb.py do:

tables_to_introspect = options['table'] or connection.introspection.table_names(cursor=cursor, include_views=True)

Uważaj, że wygenerowane modele nie będą miały pól z primary_key=True ustawione, konieczne będzie ręczne dodanie kluczy podstawowych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyklucz definicje funkcji podczas zrzucania bazy danych PostgreSQL

  2. Jak zwrócić tabelę według typu wiersza w PL/pgSQL?

  3. Jak mogę ustawić odroczone ograniczenie tabeli początkowo odroczone w modelu django?

  4. Docker postgres nieprawidłowy rekord głównego punktu kontrolnego

  5. Nielegalna instrukcja:4 podczas uruchamiania Django