Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Conflict

Solutions

Challenges

Solutions(NO)

AMID

  • An object with this AMID already exists

Genarate

  • Replace all objectReference

  • Erstatt alle objektreferanser

PK

  • An object with this primary key already exists

  • Single PK only for now

Genarate if UUID

  • Replace all FK

  • How to handle composite PK?

  • Should we generate other types? If so then how?

  • Erstatt alle fremmednøkler

Input from the user

  • Requires user interaction

Unique UNIQUE

  • An object with this value for this field already exists

Genarate if UUID

  • Should we generate other types? If so then how?

Input from the user

  • Requires user interaction

Set null if nullable

FVP Unique _UNIQUE

  • An object with this value for this field already exists

  • Root entities only for now

Genarate

Input from the user

  • Requires user interaction

Set null if nullable

FK

  • The parent object not found

  • Not yet supported

Set null if nullable

RequiredREQUIRED

  • No value present for this required field

Genarate

  • Generate dummy values if not UUID or FVP

Input from the user

  • Requires user interaction

Wrong TypeTYPE

  • Value type not compatible with the field type

Genarate

  • Generate dummy values if not UUID or FVP

Input from the user

  • Requires user interaction

Set null if nullable

Wrong LengthLENGTH

  • Text length is longer than the limit

Trim extra

Input from the user

  • Requires user interaction

Set null if nullable

...

For this section, we need to consider the system root entities like AKTOR, TAG, etc. and ignore AMID/PK conflicts for all sub-entities. We have added options for handling AMID/PK/Unique/FVP Unique conflicts for the system root entities.

FailureConflict

Solutions

Challenges

  • AMID

/PK/Unique/FVP Unique conflict
  • PK

  • UNIQUE

  • FVP_UNIQUE

Ignore

  • Ignore the whole subtree for this row as well

  • Highest precedence

Replace with the conflicted row

  • Replace all objectReference and FK as well

  • Keep the relation objects but change their FK

  • 2nd highest precedence

  • Should we consider the possible new sub-entity objects?

  • Should we consider the possible changes for this subtree?

Replace with a chosen row (Maybe later)

...

After clicking the Resolve button a new tab will be opened. In the tab, there will be options to choose how do you want to proceed. There will be options present per conflict type. Either you can gather the conflicts beforehand, or gather and solve them while importing, and the third option is to mix both, meaning gather some types beforehand but resolve the rest while importing.

...

Conflict Type

Default Solutions (Used while importing)

Description

AMID

Generate

  • Generate a new UUID

Fail

  • Throw error and abort

PK

Generate

  • Generate a new UUID

  • Available if all are UUID

Fail

  • Throw error and abort

UniqueUNIQUE

Generate

  • Generate a new UUID

  • Available if all are UUID

Fail

  • Throw error and abort

FVP Unique_UNIQUE

Generate

  • Generate a new FVP

Fail

  • Throw error and abort

FK (Not supported yet)

Set Null

  • Set null if nullable

Fail

  • Throw error and abort

RequiredREQUIRED

Generate

  • Generate a dummy value

Fail

  • Throw error and abort

Wrong TypeTYPE

Set Null or Generate

  • Set null if nullable or generate a dummy value

Fail

  • Throw error and abort

Wrong LengthLENGTH

Trim Extra

  • Trim the extra part

Fail

  • Throw error and abort

System Entity

Generate

  • Generate a new UUID or FVP

Ignore

  • Ignore this row and it’s subtree

Replace with the conflicted row

  • Ignore this row and it’s subtree (Without the relation objects)

  • Import relation objectss but change the relation to connect to the conflicted row

Fail

  • Throw error and abort

...

Info

The current limit for gathering conflicts is 10,000.

...

image-20240829-111502.pngImage Added

Resolve and Import

Clicking the Resolve and Import button will begin the 4th and final step. In this step, the import will run again. All the conflicts gathered beforehand and conflicts gathered while running will be resolved based on the chosen solution.

...