Save CKAN dataset / package extra fields in different tables other than package_extra

I am using CKAN 2.10.1 version and I would like to have the following relation tables as the picture below and also I’ve created an extension that implements the: IPackageController

plugins.implements(plugins.IPackageController, inherit=True)

def after_dataset_create(self, context, dataset_dict):
 ...

But I am blocked in the following issues:

  1. How can I send a custom json in order to insert the data into my relation tables other than package? e.g

    {
    "id": "7b.b.h",
    "name": "age",
    "author": "John Doe",
    "author_email": "[email protected]",
    "owner_org": "acme",
    "private": false,
    "doi": "10.35551/acme/7b.b.h",
    "creators": [ 
      { "first_name": "Loren", "last_name": "Ipsum" }
    ]
    "resources": []
    }
    
  2. Is this possibile in CKAN or should I use the package_extra table only to include extra fields in my dataset (package)?

The extra json field called “creators” makes my request be invalid. Even if I put as extra_fields the after_dataset_create doesn’t give me bakc the extra_fields. I am new in CKAN and I will be very glad for the help.

enter image description here

Leave a Comment