Vous n'êtes pas identifié(e).
Pages : 1
Bonjour Sébastien,
Merci pour votre retour, vous avez effectivement bien saisi la question et m'avez apporter une confirmation. La deuxième migration passera donc par un pg_dump/pg_restore
Geoffroy
Bonjour,
Nous migrons actuellement deux clusters PostgreSQL (un en V.10.12 et l'autre en v.11.3) pour les mutualiser sur une version 12.16.
Ma question fait référence à la possibilité de réaliser les deux migrations via pg_upgrade, en exécutant l’une et plus l’autre.
J’ai réalisé la première (10 >> 12) via pg_upgrade via la commande classique
pg_upgrade.exe --old-datadir "C:/Program Files/PostgreSQL/10/data" --new-datadir "C:/Program Files/PostgreSQL/12/data" --old-bindir "C:/Program Files/PostgreSQL/10/bin" --new-bindir "C:/Program Files/PostgreSQL/12/bin"
Lorsque je lance la deuxième (v.11 >> v.12), le message d’erreur suivant est renvoyé:
La base de données XX de La nouvelle instance n'est pas vide : relation public.spatial_ref_sys trouvée"
En effectuant des recherches, il est indiqué que pg_upgrade ne peut fonctionner que si le cluster target est vide.
Cela supposerait que la deuxième migration ne pourrait pas se faire par cette voie et qu’il faudrait passer par pg_dump ou pg_dumpall.
Quelqu’un peut-il confirmer que c’est bien le cas ?
Merci pour votre support
Geoffroy
Bonjour,
Je ne pense pas qu'il s'agisse d'une limitation du shp loader. J'ai importé des shapes de 100Mo sans difficultés.
Pouvez-vous préciser quelle est l'"erreur" retournée dans le log de l'import?
Au hasard, quelques pistes :
- la table attributaire peut contenir des caractères (notamment les caractères accentués) qui empêchent l'import. Cela se traduit généralement par un message explicite dans les log;
- vérifiez la topologie de votre shapefile. Quelques fois, cela peut être la source de certaines erreurs lors de l'import.
Il existe le même style de loader dans QGIS (DB Manager) dans sa version la plus récente (V 2.0)
Cordialement,
Geoffroy
Bonjour,
Ce post date mais j'y apporte (mieux vaut tard que jamais), la méthode que j'avais suivie pour passer des informations d'Oracle à Postgres.
Le contexte voulait que je n'avais qu'un nombre limité de tables (6) à utiliser de la base de données Oracle du client, tables qui sont soit figées (contiennent des données qui ne seront plus updatées) ou qui est updatées périodiquement, de manière définie . Après avoir beaucoup cherché et chipoter (dblink ,ETL, etc.) j'ai finalement opté pour une solution assez basique mais qui, dans mon cas, me donne satisfaction.
Je réalise le transfert via de simples scripts PHP, qui se décomposent comme suit :
1. Ouverture d'une connexion en ODBC sur la base Oracle et requête SQL. Le résultat est retourné en json
$rdb_connect = odbc_connect('namedb', 'nameuser', 'log');
2. Ouverture vers BD postgres, le json est décodé et j'insère les datas dans ma table pg créée auparavant.
Je lance ce script une fois ou via le task scheduler de windows, paramétré en fonction des updates sur la BD du client.
Voilà donc la manière utilisée. Il y a sans doute plus efficace mais cela m'a permis de m'en sortir
Geoffroy
Bonjour à tous,
Un grand merci pour vos réponses. Je m'excuse pour le délai (mission à l'étranger)
Je vais tester les solutions proposées. Je n'ai pas vu la possibilité de connecter directement les deux BD mais si c'est le cas, ce serait parfait :-)
Je reviens vers vous pour vous donner les résultats
Geoffroy
Bonjour à tous,
Je suis actuellement face à un problème similaire.
- D’une part, j’ai une base de données PostgreSQL/Postgis servant à stocker des tables spatiales.
- De l’autre, nous avons une base de données Oracle où se trouvent des tables alphanumériques.
- Les deux bases de données sont pour l’instant indépendantes. Les tables spatiales et alphanumériques pourraient être liées via un même identifiant.
- Les utilisateurs ajoutent/modifient/suppriment des données alphanumériques stockées dans Oracle quotidiennement
Je souhaiterais établir un lien entre les deux bases de données de manière à récupérer certaines tables d’Oracle sous postgresql et pouvoir lier les informations avec une table spatiale. Une procédure automatique de mise à jour devrait pouvoir récupérer les modifications quotidiennes apportées depuis Oracle.
J’ai fait des recherches et ai certaines pistes qui se dégagent telles que l’utilisation de DBI-Link (mais nécessite Perl et Driver Oracle), Geokettle ou comme dit plus haut, la définition de trigger mais là je ne sais pas trop comment débuter.
Je suis donc très intéressé par les retours d’expérience et par les choix que vous auriez effectué.
Un grand merci
Geoffroy
Pages : 1