français

Bogue : Impossible de mettre à niveau/restaurer la géodatabase ArcGIS 10.5.1/PostgreSQL 9.5 vers ArcGIS 10.6/PostgreSQL 9.6 lorsque ST_RASTER est installé

Description

Le type SQL ST_RASTER est devenu obsolète après la version 10.5.1. Toutefois, ses assemblées existent actuellement dans les bases de données PostgreSQL, étant donné que le type a été installé dans la base de données lors d’une version précédente. Pour PostgreSQL, l’erreur suivante peut se produire lors de l’exécution de l’utilitaire pg_restore pour restaurer la structure sde :

[archiver (db)] n’a pas pu exécuter la requête : ERREUR :  la fonction sde.subset(sde.st_raster, text, text) n’existe pas

La section Solution ci-dessous décrit une méthode pour supprimer le type ST_Raster et ses fonctions de prise en charge de la géodatabase.

Cause

Le type ST_Raster a été installé dans la base de données lors d’une version précédente. Cette erreur se produit si la structure sde contient le type ST_RASTER obsolète.

Aucune erreur n’a été signalée du fait de la présence du type ST_RASTER dans les bases de données SQL Server ou Oracle.

Solution

  1. Effectuez une sauvegarde au niveau du système de fichiers. Consultez la documentation PostgreSQL pour obtenir les instructions :
    File System Level Backup
  2. Utilisez ce document ArcGIS Desktop pour convertir les données raster du type de stockage ST_RASTER vers le type de stockage RASTERBLOB :
    Convertir des données raster du stockage ST_Raster vers le stockage RASTERBLOB
  3. Supprimez tous les jeux de données raster de la base de données qui possèdent une colonne avec un type ST_RASTER.
  4. Utilisez cette instruction SQL pour contrôler qu’aucune colonne de type ST_RASTER ne reste dans la géodatabase :
select relname from pg_class where oid = (select attrelid from pg_attribute where atttypid = (select oid from pg_type where typname = 'st_raster'))
  1. Connectez-vous à la base de données en tant qu’administrateur de la géodatabase et exécutez les instructions SQL fournies dans le fichier joint dont le lien se trouve dans la section Informations associées ci-dessous pour supprimer le type ST_Raster et ses fonctions.
    Coupez-collez les instructions en pièce jointe dans un fichier et exécutez-les en tant que script dans votre utilitaire SQL PostgreSQL.
  2. Créez un nouveau fichier de vidage et restaurez-le à l’aide de pg_dump et pg_restore pour s’assurer qu’il est possible de sauvegarder et restaurer la base de données sans erreur.

Informations associées