IndexedDB migration: don't run activeDid migration twice, include warnings in output, don't automatically compare afterward

This commit is contained in:
2025-06-20 06:26:56 -06:00
parent 7978133e7f
commit 4a1a92905d
2 changed files with 30 additions and 59 deletions

View File

@@ -200,6 +200,28 @@
</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 -->
<div
v-if="successMessage"
@@ -1099,6 +1121,7 @@ export default class DatabaseMigration extends Vue {
private isLoading = false;
private loadingMessage = "";
private error = "";
private warning = "";
private exportedData: Record<string, any> | null = null;
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.`;
if (result.warnings.length > 0) {
this.successMessage += ` ${result.warnings.length} warnings.`;
this.warning += result.warnings.join(", ");
}
this.successMessage += " Now finish by migrating contacts.";
logger.info(
@@ -1255,8 +1279,7 @@ export default class DatabaseMigration extends Vue {
result,
);
// Refresh comparison data after successful migration
this.comparison = await compareDatabases();
this.comparison = null;
} else {
this.error = `Migration failed: ${result.errors.join(", ")}`;
logger.error(
@@ -1342,14 +1365,14 @@ export default class DatabaseMigration extends Vue {
this.successMessage = `Successfully migrated ${result.settingsMigrated} settings.`;
if (result.warnings.length > 0) {
this.successMessage += ` ${result.warnings.length} warnings.`;
this.warning += result.warnings.join(", ");
}
logger.info(
"[DatabaseMigration] Settings migration completed successfully",
result,
);
// Refresh comparison data after successful migration
this.comparison = await compareDatabases();
this.comparison = null;
} else {
this.error = `Migration failed: ${result.errors.join(", ")}`;
logger.error(
@@ -1385,14 +1408,14 @@ export default class DatabaseMigration extends Vue {
this.successMessage = `Successfully migrated ${result.accountsMigrated} accounts.`;
if (result.warnings.length > 0) {
this.successMessage += ` ${result.warnings.length} warnings.`;
this.warning += result.warnings.join(", ");
}
logger.info(
"[DatabaseMigration] Account migration completed successfully",
result,
);
// Refresh comparison data after successful migration
this.comparison = await compareDatabases();
this.comparison = null;
} else {
this.error = `Migration failed: ${result.errors.join(", ")}`;
logger.error(