2014-07-10 2 views
0

J'essaye de mettre à jour de 9.2 à 9.3, pg_upgrade échoue parce que la base de données 9.2 postgres (admin) est SQL_ASCII et la nouvelle instance de 9.3 postgres (admin) est UTF-8.L'encodage de l'admin par défaut (postgres) peut-il être modifié?

Je ne peux pas supprimer la base de données 'postgres' car c'est l'instance admin, donc je ne peux pas recréer avec UTF-8.

Est-ce que je vais correctement à ce sujet?

Les suggestions sont grandement appréciées.

Merci.

+0

Pourquoi ne pouvez-vous déposer la base de données postgres (nouvelles)? Il n'y a rien de spécial à propos de cette base de données. –

Répondre

1
  • Vous pouvez toujours supprimer la base de données. Sous Linux, les commandes shell suivantes devraient faire l'affaire (question que l'utilisateur postgres, utilisez su - postgres dans un shell root):

    postgres$ pg_dump postgres > pg.sql 
    postgres$ dropdb postgres 
    postgres$ createdb -O postgres -E UTF8 postgres 
    postgres$ psql < pg.sql 
    
  • Sinon, vous pouvez tromper le catalogue de penser la base de données est en UTF8. Cela fonctionne pour une base de données postgres vide (qui est vide par défaut)

    postgres$ psql 
    postgres=# UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8') WHERE datname = 'postgres'; 
    
+0

Excellent, l'alternative (UPDATE) a parfaitement fonctionné, merci beaucoup! –

Questions connexes