Upgrading from Litium 5 to Litium 6 - recommendations

Hello

We are upgrading one of our partners from Litium 5 to the latest Litium 6.
We want to end up at Litium 7 eventualy but for now we do one transition at a time.

While I am familiar with the API changes and Litium 6 per general I have a few specific questions.

  1. Migrating product media

Our partner uses the Litium 5 File.MetadataFields to store additional information about product media. I know that MetadataFields is replaced by the FieldFramework. Will the database upgrade script handle this transition or we will need to somehow export MetadataFields and import them as fields in the FieldFramework?

  1. Migrating customers

In Litium 5 customers are organized in a tree and our partner uses that feature extensively.
I know that the tree structure is replaced with a flat hierarchy in Litium 6.
We want to preserve the hierarchy as fields on the organization level.
How is the database migration handling this?
Are there any best practices for this?

  1. Migrating logins

I know that Internal users have been replaced by Logins for Persons. Do I need to worry about these or the database upgrade script will handle the transition?

I would also appreciate any other tips.
Thank you!

Litium version: 6.3.0

Got hold of a production database backup.
Ran the SQL upgrade script and from the first look it seems that image metadata to image fields transition is handled gracefully

The tree problem is a issue that we are battling also. Tell that to litium since the tree is removed because they think it was used by to few. The upgrade program handle the hierarcy by adding a “parentOrganization” id on the organization that contain the closes ancestor to the organization. This is not a organization pointer just the organization id in a text field.

To visualize this you need to build something in the project.

Not sure if this is the case i litium 6 but i guess the search index for relationsmodule is removed there as it is in litium 7. This will result in a preformance hit if you search or iterate large amount of organizations. Another thing we had problems with is that there are no way of using the dataservice to filter organization via the addresses you need to fetch dem and then iterate the addresses.
You could create your own indexes as a workaround for this.

  1. As @Spotonkastebo say the parent organization is stored as a field so the value is stored during the upgrade. The field type should be of the type CustomerPointerOrganization and in the UI it should have a organization selector if I remember correct.

  2. Litium is converting the metadata into text-fields for the media.

  3. Litium is converting the users that only was existing in the settings part of the control panel into the Customers/Persons.

Thanks everyone for the information you have provided.