Hi Fiona,
The Drupal upgrade process is documented at https://www.drupal.org/node/1285892 and each contributed module you employ may also come with its own specific instructions which need to be followed. I won't repeat any of that here.
What we do need to document are the upgrade steps for the custom modules that are part of the Indicia suite.
The IForm module just dropped in to place and worked without any problem because most of the work is done within the client_helpers library which is Drupal agnostic. Email Notifications was also no bother.
A number of Features were simply removed as they just created configuration settings. This included Discussion Forum, Indicia Quickstart, Registration terms of use.
Other components were replaced by pages created using the IForm module including Survey summaries, Forms and surveys library. Replacing the Forms and surveys library required some scripts to be run to migrate settings.
I think we just discarded Summary reports because they were about redundant.
The Mobile authentication module was uninstalled and reinstalled with all its settings recreated by hand.
The Easy_Login module, on the other hand, needed a lot of work because the personal information has to be moved from the D6 Profile module to D7 Fields. An upgrade script could be written in to the module to do this automatically but I chose to export and re-import the user data using contributed modules. If there are many sites around needing to upgrade this module then there is a good case to write that script.
Poor validation meant that there were a number of users with faults that broke the import and it took some time to locate and clean all of these up. iRecord had about 17000 users and the import took 5 hours to run once everything was clean.
Download and install Views Data Export. https://www.drupal.org/project/views_data_export
Create a view to export profile fields in a CSV file. Use 0 and 1 for Boolean values. (Needed to increase memory_size in php.ini to 256MB). Include a unique field e.g. email (not uid, curiously). Give short labels to make later import easier. Omit the following fields:
a. Page to display after logging in. (Forms library superseded.)
b. Favourite library forms. (Forms library superseded.)
c. Record privacy. (Not used and not supported by D7 Easy Login)
Correct faulty users in CSV file. I found I had problems with
a. duplicate spam email addresses,
b. emails addresses containing invalid characters or character combinations e.g. ‘ and .@
d. email addresses without a top level domain e.g jim@hotmail,
e. surnames longer than 50 characters,
f. first names longer than 50 characters,
g. missing surname,
h. invalid indicia_user_id = -1.
Create missing fields/groups (installing modules has created some, and others listed above can be omitted). Copy from admin/config/people/profile of D6 site to admin/config/people/accounts/fields of D7 site. (Date module required as date profile fields exist. https://www.drupal.org/project/date)
a. What you record:My recording experience, field_experience, long text, textarea
b. Verification:Location of collation, field_location_collation, list(integer), select
c. What you record:Training, field_training, checkbox
d. System:Import field mappings, field_import_field_mappings, long text, textarea
e. Move Indicia Warehouse User ID, User shared secret and One time login code to System group.
f. Change first name and last name fields to 50 characters long.
Go to Account settings, Manage display, having set up the fields and organise them in similar fashion. Use negative weights to arrange position of groups in relation to the automatically added group, Data collation settings. Use Div format with div:open. Hide One time login code and Import field mappings.
Install Feeds, Job Scheduler, Feeds Tamper and add the unserilaze plugin to Feeds Tamper.
Create a csv user import feed for update, mapping profile fields in the exported csv file to user fields.
Tamper the feed and
a. unserialize species_groups
b. unserialize species_expertise
Backup
Run the import.
When done, uninstall and delete Views data export, Feeds, Feeds tamper, Job Scheduler, Profiles.
Delete csv files from their upload location.
Backup.
The unserialize plugin for Feeds Tamper is attached.
Not all of the fields mentioned will exist on all systems as it depends on installed modules.
You are definitely recommended to take a copy of your site and do the migration on that first before trying it on your live site.
Another significant task was creating a new theme as there was no upgrade path for that.
Good luck,
Jim Bacon.
Post's attachmentsunserialize.inc 616 b, 1 downloads since 2015-02-26
You don't have the permssions to download the attachments of this post.