PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

La commande Django 1.8 inspectdb ne voit pas les vues PostgreSQL selon la documentation

Depuis Django 1.10, vous pouvez simplement nommer une vue individuelle en tant que paramètre de votre inspectdb commande :

python well/manage.py inspectdb hospitalizations_over_30_days

La valeur par défaut inspectdb ne sortira que models.py pour les tables, mais les modèles pour les vues peuvent être générés individuellement en les nommant.

Dans Django 2.1 et supérieur, si vous voulez inspectdb pour générer des modèles pour toutes les tables et vues, utilisez le inspectdb --include-views option, que j'ai contribué à Django 2.1 à la suite de cette question !

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

Pour générer des modèles pour les tables et les vues dans Django 2.0 et versions antérieures, vous devez modifier le code source de Django. Dans Django 2.0, modifiez ligne 57 dans django/core/management/commands/inspectdb.py à :

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

Attention, les modèles générés n'auront pas de champs avec primary_key=True défini, vous devrez ajouter les clés primaires manuellement.