|
@ -200,6 +200,28 @@ |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<!-- Warning State --> |
|
|
|
|
|
<div |
|
|
|
|
|
v-if="warning" |
|
|
|
|
|
class="mb-6 bg-red-50 border border-red-200 rounded-lg p-4" |
|
|
|
|
|
> |
|
|
|
|
|
<div class="flex"> |
|
|
|
|
|
<div class="flex-shrink-0"> |
|
|
|
|
|
<IconRenderer |
|
|
|
|
|
icon-name="warning" |
|
|
|
|
|
svg-class="h-5 w-5 text-red-400" |
|
|
|
|
|
fill="currentColor" |
|
|
|
|
|
/> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="ml-3"> |
|
|
|
|
|
<h3 class="text-sm font-medium text-red-800">Warning</h3> |
|
|
|
|
|
<div class="mt-2 text-sm text-red-700"> |
|
|
|
|
|
<p>{{ warning }}</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- Success State --> |
|
|
<!-- Success State --> |
|
|
<div |
|
|
<div |
|
|
v-if="successMessage" |
|
|
v-if="successMessage" |
|
@ -1099,6 +1121,7 @@ export default class DatabaseMigration extends Vue { |
|
|
private isLoading = false; |
|
|
private isLoading = false; |
|
|
private loadingMessage = ""; |
|
|
private loadingMessage = ""; |
|
|
private error = ""; |
|
|
private error = ""; |
|
|
|
|
|
private warning = ""; |
|
|
private exportedData: Record<string, any> | null = null; |
|
|
private exportedData: Record<string, any> | null = null; |
|
|
private successMessage = ""; |
|
|
private successMessage = ""; |
|
|
|
|
|
|
|
@ -1248,6 +1271,7 @@ export default class DatabaseMigration extends Vue { |
|
|
this.successMessage = `Successfully migrated ${totalMigrated} total records: ${result.accountsMigrated} accounts, ${result.settingsMigrated} settings, ${result.contactsMigrated} contacts.`; |
|
|
this.successMessage = `Successfully migrated ${totalMigrated} total records: ${result.accountsMigrated} accounts, ${result.settingsMigrated} settings, ${result.contactsMigrated} contacts.`; |
|
|
if (result.warnings.length > 0) { |
|
|
if (result.warnings.length > 0) { |
|
|
this.successMessage += ` ${result.warnings.length} warnings.`; |
|
|
this.successMessage += ` ${result.warnings.length} warnings.`; |
|
|
|
|
|
this.warning += result.warnings.join(", "); |
|
|
} |
|
|
} |
|
|
this.successMessage += " Now finish by migrating contacts."; |
|
|
this.successMessage += " Now finish by migrating contacts."; |
|
|
logger.info( |
|
|
logger.info( |
|
@ -1255,8 +1279,7 @@ export default class DatabaseMigration extends Vue { |
|
|
result, |
|
|
result, |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
// Refresh comparison data after successful migration |
|
|
this.comparison = null; |
|
|
this.comparison = await compareDatabases(); |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.error = `Migration failed: ${result.errors.join(", ")}`; |
|
|
this.error = `Migration failed: ${result.errors.join(", ")}`; |
|
|
logger.error( |
|
|
logger.error( |
|
@ -1342,14 +1365,14 @@ export default class DatabaseMigration extends Vue { |
|
|
this.successMessage = `Successfully migrated ${result.settingsMigrated} settings.`; |
|
|
this.successMessage = `Successfully migrated ${result.settingsMigrated} settings.`; |
|
|
if (result.warnings.length > 0) { |
|
|
if (result.warnings.length > 0) { |
|
|
this.successMessage += ` ${result.warnings.length} warnings.`; |
|
|
this.successMessage += ` ${result.warnings.length} warnings.`; |
|
|
|
|
|
this.warning += result.warnings.join(", "); |
|
|
} |
|
|
} |
|
|
logger.info( |
|
|
logger.info( |
|
|
"[DatabaseMigration] Settings migration completed successfully", |
|
|
"[DatabaseMigration] Settings migration completed successfully", |
|
|
result, |
|
|
result, |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
// Refresh comparison data after successful migration |
|
|
this.comparison = null; |
|
|
this.comparison = await compareDatabases(); |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.error = `Migration failed: ${result.errors.join(", ")}`; |
|
|
this.error = `Migration failed: ${result.errors.join(", ")}`; |
|
|
logger.error( |
|
|
logger.error( |
|
@ -1385,14 +1408,14 @@ export default class DatabaseMigration extends Vue { |
|
|
this.successMessage = `Successfully migrated ${result.accountsMigrated} accounts.`; |
|
|
this.successMessage = `Successfully migrated ${result.accountsMigrated} accounts.`; |
|
|
if (result.warnings.length > 0) { |
|
|
if (result.warnings.length > 0) { |
|
|
this.successMessage += ` ${result.warnings.length} warnings.`; |
|
|
this.successMessage += ` ${result.warnings.length} warnings.`; |
|
|
|
|
|
this.warning += result.warnings.join(", "); |
|
|
} |
|
|
} |
|
|
logger.info( |
|
|
logger.info( |
|
|
"[DatabaseMigration] Account migration completed successfully", |
|
|
"[DatabaseMigration] Account migration completed successfully", |
|
|
result, |
|
|
result, |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
// Refresh comparison data after successful migration |
|
|
this.comparison = null; |
|
|
this.comparison = await compareDatabases(); |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.error = `Migration failed: ${result.errors.join(", ")}`; |
|
|
this.error = `Migration failed: ${result.errors.join(", ")}`; |
|
|
logger.error( |
|
|
logger.error( |
|
|