Saturday 7 August 2021

How can i do a deep Copy / Clone of a sqlalchemy Object

Basically, i have an sqlAlchemy Object like this

[
    {
      "id": "f6e18732-a6a1-4eca-b6e3-3d6135b8de65", 
      "name": "something", 
      "someP": [
        {
          "id": "8b8bdfb1-9e23-41c0-816f-25cf9993b443", 
           ....
          "pName": "Pname1"
        }, 
        {
          "id": "4903daf5-6888-4928-9320-fd7a9520832f", 
           ....
          "pName": "Pname2"
        }
      ],
      "someS": [
        {
          "GeneralId": "f6e18732-a6a1-4eca-b6e3-3d6135b8de65", 
          "id": "db48c240-55dc-433c-9951-68677066e830", 
          ...
          "sName": "Sname1"
        },
        {
          "GeneralId": "f6e18732-a6a1-4eca-b6e3-3d6135b8de65", 
          "id": "de946769-0102-40f1-85cf-8eb632216fa8", 
           ...
          "sName": "Sname2"        
        }
      ]
    }
  ]

and i want to do a clone of my object to duplicate in my database. To do that, i'm using db.session.add.

    db.session.expunge(objD)
    make_transient(objD)
    objD.id = newId
    objD.name = "testDupli"

    db.session.add(objD)

But when i'm looking in my Database, i don't have someP and someS content. It's empty.

I want to duplicate my sqlAlchemy Object, and add a new id and name, and publish in my database. I don't want to delete or update the previous, but create a new one with just the id and the name updated



from How can i do a deep Copy / Clone of a sqlalchemy Object

No comments:

Post a Comment