web-dev-qa-db-fra.com

PG_RESTORE AVERTISSEMENT COLONNE X A TYPE INCONNU

Je fais une décharge de PostgreSQL 9.1 et je restaure sur PostgreSQL 9.4 et obtenir cet avertissement

pg_restore: WARNING:  column "foobar" has type "unknown"
DETAIL:  Proceeding with relation creation anyway.

Mais après la restauration, je peux vérifier la colonne "Foobar" Type est définie et correcte.

Qu'est-ce qui pourrait causer cet avertissement?

6
Phill Pafford

CREATE VIEW ou alors CREATE TABLE... AS SELECT Vous devez déduire les types de colonne pour la relation à créer. Parfois, le contexte n'est pas suffisant pour deviner un type de données, par exemple lorsqu'il s'agit simplement d'un littéral à chaîne. Dans ce cas, il est créé comme unknown.

Exemple :

[. ____ ____.] Créer une vue 

Résultat:

 Test =>\D TestView 
 Voir "Public.TestView" 
 Colonne | Type | Modificateurs 
 -------- + --------- + ----------- 
 Foobar | Inconnu | 
 

Si cette vue était pg_dumped et pg_Restoraté, la colonne serait créée comme unknown avec à nouveau l'avertissement mentionné:

pg_restore: Avertissement: colonne "foobar" a type "inconnu"
Détail: En procédant de toute façon.

La table/la vue doit être créée pour commencer avec des moulages explicites aux colonnes si nécessaire, comme dans

CREATE VIEW testview AS SELECT  'bla'::text AS foobar;

que nous pouvons supposer est le point de cet avertissement en premier lieu.

8
Daniel Vérité