Je voudrais faire une copie exacte (domaines, jeux de données d'entités, classes d'entités, etc.) d'une base de données SDE dans une géodatabase fichier.
J'ai essayé plusieurs possibilités, notamment:
- à l'aide du processus de copie (gestion des données)
- créer un nouveau GDB et copier manuellement chaque jeu de données d'entité à partir du SDE
- exportation d'un document d'espace de travail xml à partir du SDE et importation dans le GDB
Le Copy_management
processus ne semble pas fonctionner pour copier un SDE dans un GDB, car les types de données d'entrée et de sortie doivent correspondre.
Le processus d'importation de chaque jeu de données d'entité dans un nouveau GDB pourrait probablement être automatisé à l'aide de Copy_management également en itérant à travers chaque jeu de données d'entité, bien qu'il semble que cela puisse causer des problèmes de copie incomplète s'il y avait une erreur avec l'un des processus.
L'exportation et l'importation d'espaces de travail xml semblent fonctionner, bien que ce processus crée des fichiers incroyablement volumineux lorsqu'il est utilisé sur de grandes géodatabases.
Existe-t-il un moyen plus simple de copier le contenu et le schéma d'un SDE vers un GDB que les méthodes mentionnées, d'une manière qui peut être automatisée?
Sinon, y a-t-il des raisons pour lesquelles les possibilités ci-dessus ne devraient pas être utilisées dans ce processus?
Réponses:
La seule façon d'obtenir une copie fidèle des données (domaines, jeux de données, relations, etc.) consiste à utiliser la méthode manuelle de copier-coller dans le catalogue. ESRI ne nous a pas encore donné la possibilité de transférer ces données par tout autre moyen avec une seule opération qui peut être facilement scriptée.
J'ai un processus nocturne qui copie mes deux bases de données SDE principales pour archiver des géodatabases pour la continuité des opérations. Il en est ainsi qu'en cas d'urgence, mon personnel a des données à travailler jusqu'à ce que mon magasin informatique puisse reconstruire mon SDE à partir d'une sauvegarde. Après de nombreux essais et erreurs, j'ai décidé que nous pouvions vivre avec les limites de l'utilisation de FeatureClassToFeatureClass_conversion et TableToTable_conversion pour transférer nos données chaque nuit.
Oui, nous perdons certaines des fonctionnalités de la géodatabase, mais elle fonctionnera désormais sans surveillance la nuit et est prête à fonctionner dès que je l'obtiens. Dans mon cas, la seule fonctionnalité qui nous manque vraiment (en supposant un fonctionnement en mode d'urgence) est que mes classes de relations sont rompues car la conversion réinitialise les ObjectID qui relient les deux tables.
Jusqu'à ce que ESRI nous donne plus d'options, vous devrez examiner ce que vous êtes prêt à sacrifier pour le moment; temps et effort ou fonctionnalité?
la source
Je sais que ce message est un peu vieux mais je pensais que je partagerais ma réponse car j'étais confronté au même problème. Le script suivant DEVRAIT copier toutes les tables, classes d'entités et relations ne se trouvant pas dans un jeu de données et copiera également tous les jeux de données, y compris les classes d'entités, la topologie, etc. dans le jeu de données. Il sautera toutes les erreurs pendant la copie et continuera. Il produira un fichier journal qui contient des données telles que le nombre d'éléments de base de données source et le nombre d'éléments de destination afin que vous puissiez comparer la copie et enregistrera également les erreurs qu'il rencontre.
J'ai vraiment eu de la chance avec ça. Je répliquais une base de données SDE dans une géodatabase fichier. Je n'ai pas fait trop de tests sur ce script car il répondait à tous mes besoins. Je l'ai testé à l'aide d'ArcGIS 10.3. En outre, une chose à noter, j'étais en pourparlers avec quelqu'un qui a utilisé ce script et ils ont rencontré un problème avec une erreur de copie de certains ensembles de données en raison d'autorisations incorrectes et de tables vides.
Lémurien - pourquoi ne pas créer vos relations basées sur un identifiant global au lieu de l'identifiant d'objet? Que vous vos relations soient préservées. Si vous n'avez pas créé d'identifiants globaux, je le recommande vivement.
-mise à jour
J'ai ajouté un peu plus de logique dans le code pour gérer les mauvais chemins de connexion à la base de données et une meilleure journalisation et meilleure gestion des erreurs:
la source
J'ai utilisé un script similaire à celui de Peter ci-dessus et j'ai eu de la chance, bien que le sien soit meilleur. Une chose à souligner qui pourrait déclencher quelqu'un est que si vous utilisez le géotraitement Python 64 bits et que vous avez ArcFM chargé par-dessus ESRI, il échouera sur toutes les fonctionnalités qui ont été définies pour utiliser ArcFM ou Designer avec une ERREUR 000260. Cette est parce que vous devez utiliser du python 32 bits ou les trucs ArcFM ne seront pas correctement sous licence.
Pour une description plus détaillée de l'utilisation d'ArcPy 32 bits, consultez les deux premiers commentaires sur ce fil dans Exchange
https://infrastructurecommunity.schneider-electric.com/docs/DOC-2563
la source
Si vous avez des privilèges d'administrateur, vous pouvez utiliser des commandes simples de copier-coller pour exporter ou importer sde dans un fichier géo-base de données et vice versa et consultez ici pour plus de détails.
la source