Suite

Comment copier la classe d'entités de pièce jointe de la GDB personnelle vers la GDB de fichier ?

Comment copier la classe d'entités de pièce jointe de la GDB personnelle vers la GDB de fichier ?


J'ai des classes d'entités avec des pièces jointes dans la géodatabase personnelle . Je souhaite les copier automatiquement de la géodatabase personnelle à la géodatabase fichier à l'aide d'arcpy. J'ai utilisé le code suggéré par @Aaron pour copier toutes les classes et tous les jeux de données dans un fichier de géodatabase. C'était génial, mais je ne pouvais pas copier les pièces jointes à l'aide du code.


J'ai supposé ce qui suit :

  1. Pour vos classes d'entités dans mdb, le suffixe "_ATTACH" est utilisé uniquement pour la table de pièces jointes.
  2. Vous pouvez personnaliser davantage ce code.
  3. Ce code doit être exécuté après toutes les classes d'entités (à l'exception des tables de pièces jointes - ce script créera une table de pièces jointes et chargera les classes de relations de la table respective de la mdb dans gdb) sont déplacés de mdb vers gdb .
  4. Il est testé dans arcmap 10.3.

    mdb_folder = r'C:UsersUSER_NAMEDocumentsArcGISgissta' gdb_folder = r'C:UsersUSER_NAMEDocumentsArcGISDefault.gdb' tables_paths = [] tables_names = [] #obtenir toutes les tables de pièces jointes dans le mdb. pour w,d,f dans arcpy.da.Walk(mdb_folder) : pour i dans f : si i.endswith("__ATTACH") : tables_names.append(i) tables_paths.append(os.path.join(w,i )) #get toutes les classes d'entités ont des tables de pièces jointes dans **gdb**, puis créez ces tables dans gdb et chargez des données dedans. pour w,d,f dans arcpy.da.Walk(gdb_folder) : pour i dans f : si i dans [j.replace("__ATTACH","") pour j dans tables_names] : pth = os.path.join( w,i) arcpy.EnableAttachments_management(in_dataset=pth) tbl = pth+"__ATTACH" pour k dans tables_paths : print k if i in k : arcpy.Append_management(inputs=k, target=tbl, schema_type="TEST",,)

Voir la vidéo: GeodatabaseBasicsPart1