Upgrading from 5 to 6
Last updated
Was this helpful?
Last updated
Was this helpful?
To install DataGrab 6, unzip the zip file and place the user/addons/datagrab
folder into your system/user/addons
folder. Then login to the Control Panel and go to the Add-ons page and click the Install button next to DataGrab.
Version 6 is the first version of DataGrab to introduce some breaking changes. The most notable change is after upgrading you may need to review your existing imports, reconfigure the field mappings, and re-save it. DataGrab 6 does attempt to migrate these settings for you but in some cases it will require human intervention.
Version 6 introduces several new features. One of them is the ability to import into Bloqs and Fluid field groups. Some fieldtypes such as Simple Grid, Simple Table, and the native Grid field all allow for repeated rows of content to be imported. Importing into Grid, Simple Grid, or Simple Table as a standalone field works the same way as it did in previous versions of DataGrab. You simply choose a column and select from the dropdown list of properties in the import file and the data will be imported into that column.
To get this same behavior to work when one of these fields is inside of Bloqs, Grid, or Fluid you will need to set one additional value from the dropdown. The "Parent Node" option will only present itself in this scenario. DataGrab assumes that data imported into these fields will be grouped together and at the same level in your import file(1). The value of the Parent Node will need to be the top most parent of that group. It's going to be the property that ends with __parent__ - [includes 1 children]
In this example that would be fluid_field/{n}/fluid_group_3/{n}/grid/parent - [includes 1 children]
. This tells DataGrab to grab all the values for that field in one pass, as opposed to performing excessive loops. It's also important because with Bloqs, Grid, and Fluid, it's possible to have more than 1 instance of of basically the same field nested inside of it. This helps keep the contents of the field assigned to the appropriate instance of the nested field when there are more than 1.
This is an example of a Simple Grid field configuration inside of a Bloqs field.
This is an example of a Simple Table field inside of a Bloqs field.
(1) If you're trying to pluck data from varying locations and depths of your XML or JSON file into a Grid, Simple Grid, or Simple Table field, it will not work. The data should be grouped how you want it presented in the field. For example:
When running an import through the command line there are 3 new options:
--filename="path/to/file.json"
This will let you override the import file name or url value configured in your import at runtime. You can also add this parameter to an import when running it through the ACT url, e.g. https://mysite.com/?ACT=10&filename=path/to/file.json
--params="foo=bar&fizz=bazz"
Allows you to pass additional GET parameters to your import filename. The script processing your import filename will need to be setup to accept these parameters. You can use this to configure multiple imports through crontab entries all using the same import configuration, but customizing each one to process the import feed differently.
--force_update=yes
When used this will override the "Update existing entries" option in the import configuration, thus it will look at the matching fields to see if an entry containing the title value in your import matches an existing entry (if you set the Title field as one of the matching fields), then this will override the "Update existing entries" toggle. In the following scenario the TItle field is set to check for duplicates, but executing the import without the --force_update
override it will not update an existing entry that matches the Title if it exists.