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

@@ -1081,17 +1081,6 @@ export async function migrateSettings(): Promise<MigrationResult> {
});
const platformService = PlatformServiceFactory.getInstance();
// Find the master settings (accountDid is null) which contains the activeDid
const masterSettings = dexieSettings.find(setting => !setting.accountDid);
let dexieActiveDid: string | undefined;
if (masterSettings?.activeDid) {
dexieActiveDid = masterSettings.activeDid;
logger.info("[MigrationService] Found activeDid in Dexie master settings", {
activeDid: dexieActiveDid,
});
}
// Create an array of promises for all settings migrations
const migrationPromises = dexieSettings.map(async (setting) => {
logger.info("[MigrationService] Starting to migrate settings", setting);
@@ -1152,36 +1141,7 @@ export async function migrateSettings(): Promise<MigrationResult> {
const updatedSettings = await Promise.all(migrationPromises);
// Step 2: Migrate the activeDid if it exists in Dexie
if (dexieActiveDid) {
try {
// Verify that the activeDid exists in SQLite accounts
const accountExists = await platformService.dbQuery(
"SELECT did FROM accounts WHERE did = ?",
[dexieActiveDid],
);
if (accountExists?.values?.length) {
// Update the master settings with the activeDid
await updateDefaultSettings({ activeDid: dexieActiveDid });
logger.info("[MigrationService] Successfully migrated activeDid", {
activeDid: dexieActiveDid,
});
result.warnings.push(`Migrated activeDid: ${dexieActiveDid}`);
} else {
logger.warn("[MigrationService] activeDid from Dexie not found in SQLite accounts", {
activeDid: dexieActiveDid,
});
result.warnings.push(
`activeDid from Dexie (${dexieActiveDid}) not found in SQLite accounts - skipping activeDid migration`,
);
}
} catch (error) {
logger.error("[MigrationService] Failed to migrate activeDid:", error);
result.errors.push(`Failed to migrate activeDid: ${error}`);
}
} else {
logger.info("[MigrationService] No activeDid found in Dexie settings");
}
await migrateActiveDid();
logger.info(
"[MigrationService] Finished migrating settings",
@@ -1467,18 +1427,6 @@ export async function migrateAll(): Promise<MigrationResult> {
result.settingsMigrated = settingsResult.settingsMigrated;
result.warnings.push(...settingsResult.warnings);
// Step 3: Migrate ActiveDid (depends on accounts and settings)
logger.info("[MigrationService] Step 3: Migrating activeDid...");
const activeDidResult = await migrateActiveDid();
if (!activeDidResult.success) {
result.errors.push(
`ActiveDid migration failed: ${activeDidResult.errors.join(", ")}`,
);
// Don't fail the entire migration for activeDid issues
logger.warn("[MigrationService] ActiveDid migration failed, but continuing with migration");
}
result.warnings.push(...activeDidResult.warnings);
// Step 4: Migrate Contacts (independent, but after accounts for consistency)
// ... but which is better done through the contact import view
// logger.info("[MigrationService] Step 4: Migrating contacts...");