...
Table of Contents | ||
---|---|---|
|
Failures and Possible Solutions
Normal Entities
...
Conflicts
Type | Description | Solutions |
---|
Solutions(NO)
AMID |
|
Genarate
Replace all
objectReference
| |
PK |
|
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 |
|
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 |
|
Genarate
Input from the user
Requires user interaction
null
if nullable
| |
FK |
|
null
if nullableInput from the user
| |
REQUIRED |
|
Genarate
Generate dummy values if not UUID or FVP
Input from the user
Requires user interaction
Set null
if nullable
| |
TYPE |
|
Genarate
Generate dummy values if not UUID or FVP
| |
LENGTH |
|
Trim extra
Input from the user
Requires user interaction
Set null
if nullable
System Entities
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.
Conflict
Solutions
Challenges
AMID
PK
UNIQUE
FVP_UNIQUE
| ||
Root System Entity
|
|
|
Solutions
Type | Description | Challenges |
---|---|---|
GENERATE |
|
|
SET_BY_USER |
|
|
SET_NULL |
| |
SET_NULL_OR_REGENERATE |
| |
TRIM_EXTRA |
| |
IGNORE |
|
|
|
Highest precedence
Replace with the conflicted row
objectReference
and FK
REPLACE_WITH_CONFLICTED |
|
|
|
FAIL |
|
Implementation
We can divide the implementation into four key steps.
...
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
...
UNIQUE
...
Generate
...
Generate a new UUID
Available if all are UUID
...
Fail
...
Throw error and abort
...
FVP_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
...
REQUIRED
...
Generate
...
Generate a dummy value
...
Fail
...
Throw error and abort
...
TYPE
...
Set Null or Generate
...
Set
null
if nullable or generate a dummy value
...
Fail
...
Throw error and abort
...
LENGTH
...
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
...
If all the types are set to resolve at import time then the Resolve and Import
button will be shown. In this case, the 3rd step is not needed anymore. Otherwise, you can proceed to the 3rd step by clicking the Gather Conflicts
button.
...
Info |
---|
The current limit for gathering conflicts is 10,000. |
...
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.
...