Je veux renommer une de mes tables postGIS. Cependant, quand je fais cela en appliquant un simple
ALTER TABLE old_name RENAME TO new_name;
Si je comprends bien, les données spatiales ne sont pas mises à jour avec le nouveau nom. Tout d'abord, ces références peuvent-elles être corrigées en exécutant la fonction:
SELECT probe_geometry_columns()
La table elle-même est-elle OK après cela? Ou faut-il également prendre d'autres mesures? Deuxièmement, comment mettre à jour GeoServer pour qu'il trouve cette nouvelle table? À partir de maintenant, si j'exécute les commandes ci-dessus et modifie les informations de couche sur le GeoServer pour pointer vers le nouveau nom ... J'obtiens toujours une erreur (GeoServer essaie toujours de le trouver sous l'ancien nom). Exactement, où faut-il changer le nom de la couche sur le GeoServer?
Not Found The requested URL /latest/en/user/restconfig/rest-config-api.html was not found on this server.
Notez que dans PostGIS 2.0+, tout ce que vous avez à faire est la normale
L'entrée dans la vue geometry_columns (ou geography_columns) sera également mise à jour.
la source
est un utilitaire pratique.
Tout d'abord, lorsque nous ajoutons une colonne de géométrie à une table existante avec
nous alimentons la fonction tout ce dont elle a besoin pour clouer la colonne de type géométrie (geo_column) dans la table spécifiée (my_table) et écrire les détails importants comme SRID (1234), type de géométrie (MULTIPOINT) et nombre de dimensions (2) pour la table geometry_columns. En substance, c'est un ALTER et trois UPDATES.
La création de colonnes de géométrie par d'autres moyens (chargées à partir d'un fichier de formes, sélectionnées dans un CREATE TABLE AS, etc.) peut conduire à des tables spatiales invisibles pour les applications externes, bien qu'elles fonctionnent très bien dans la base de données. Sans les bons détails stockés dans geometry_columns, les valeurs de géométrie réelles apparaissent sous forme de chaînes de caractères absurdes pour les applications à la recherche de points, lignes ou polygones projetés.
L'appel de la fonction de sonde vérifie chaque colonne de type geometry, ajoutant de nouvelles valeurs à geometry_columns et signalant les conflits.
En revenant à votre question, GeoServer ne pense pas que la table renommée contient des données spatiales si le changement de nom n'est pas reflété dans geometry_columns. Une autre chose à considérer est que la fonction de sonde crée un enregistrement en double reflétant le nouveau nom de la table mais ne se débarrasse pas de l'enregistrement d'origine - un autre blocage potentiel pour GeoServer.
Cela dit, je vous suggère: 1) d'exécuter la sonde puis de supprimer immédiatement l'ancien enregistrement; ou 2) suivez votre changement de nom avec un ALTER sur geometry_columns pour changer la valeur f_table_name.
Désolé pour la verbosité, mais j'espère que cela aide.
la source
Je ne suis pas sûr de ce que fait SELECT probe_geometry_columns (), mais vous pouvez facilement vérifier la table geometry_columns pour voir si votre nouveau nom de table est là ou s'il pointe toujours vers l'ancien.
Je soupçonne que vous devez recharger le magasin GeoServer pour vous assurer qu'il "remarque" les changements. Alternativement, un arrêt et un démarrage le feront.
la source