@ -3,6 +3,7 @@ 
			
		
	
		
		
			
				
					## Schema Mapping## Schema Mapping 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### Current Dexie Schema### Current Dexie Schema 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Current Dexie schema// Current Dexie schema 
			
		
	
		
		
			
				
					const db = new Dexie('TimeSafariDB');const db = new Dexie('TimeSafariDB'); 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -15,6 +16,7 @@ db.version(1).stores({ 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### New SQLite Schema### New SQLite Schema 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```sql```sql 
			
		
	
		
		
			
				
					-- New SQLite schema-- New SQLite schema 
			
		
	
		
		
			
				
					CREATE TABLE accounts (CREATE TABLE accounts ( 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -50,6 +52,7 @@ CREATE INDEX idx_settings_updated_at ON settings(updated_at); 
			
		
	
		
		
			
				
					### 1. Account Operations### 1. Account Operations 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					#### Get Account by DID#### Get Account by DID 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					const account = await db.accounts.get(did);const account = await db.accounts.get(did); 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -62,6 +65,7 @@ const account = result[0]?.values[0]; 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					#### Get All Accounts#### Get All Accounts 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					const accounts = await db.accounts.toArray();const accounts = await db.accounts.toArray(); 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -74,6 +78,7 @@ const accounts = result[0]?.values || []; 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					#### Add Account#### Add Account 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					await db.accounts.add({await db.accounts.add({ 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -91,6 +96,7 @@ await db.run(` 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					#### Update Account#### Update Account 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					await db.accounts.update(did, {await db.accounts.update(did, { 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -109,6 +115,7 @@ await db.run(` 
			
		
	
		
		
			
				
					### 2. Settings Operations### 2. Settings Operations 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					#### Get Setting#### Get Setting 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					const setting = await db.settings.get(key);const setting = await db.settings.get(key); 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -121,6 +128,7 @@ const setting = result[0]?.values[0]; 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					#### Set Setting#### Set Setting 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					await db.settings.put({await db.settings.put({ 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -142,6 +150,7 @@ await db.run(` 
			
		
	
		
		
			
				
					### 3. Contact Operations### 3. Contact Operations 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					#### Get Contacts by Account#### Get Contacts by Account 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					const contacts = await db.contactsconst contacts = await db.contacts 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -159,6 +168,7 @@ const contacts = result[0]?.values || []; 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					#### Add Contact#### Add Contact 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					await db.contacts.add({await db.contacts.add({ 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -179,6 +189,7 @@ await db.run(` 
			
		
	
		
		
			
				
					## Transaction Mapping## Transaction Mapping 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### Batch Operations### Batch Operations 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie// Dexie 
			
		
	
		
		
			
				
					await db.transaction('rw', [db.accounts, db.contacts], async () => {await db.transaction('rw', [db.accounts, db.contacts], async () => { 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -210,6 +221,7 @@ try { 
			
		
	
		
		
			
				
					## Migration Helper Functions## Migration Helper Functions 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### 1. Data Export (Dexie to JSON)### 1. Data Export (Dexie to JSON) 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					async function exportDexieData(): Promise< MigrationData >  {async function exportDexieData(): Promise< MigrationData >  { 
			
		
	
		
		
			
				
					  const db = new Dexie('TimeSafariDB');  const db = new Dexie('TimeSafariDB'); 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -228,6 +240,7 @@ async function exportDexieData(): Promise<MigrationData> { 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### 2. Data Import (JSON to absurd-sql)### 2. Data Import (JSON to absurd-sql) 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					async function importToAbsurdSql(data: MigrationData): Promise< void >  {async function importToAbsurdSql(data: MigrationData): Promise< void >  { 
			
		
	
		
		
			
				
					  await db.exec('BEGIN TRANSACTION;');  await db.exec('BEGIN TRANSACTION;'); 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -264,6 +277,7 @@ async function importToAbsurdSql(data: MigrationData): Promise<void> { 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### 3. Verification### 3. Verification 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					async function verifyMigration(dexieData: MigrationData): Promise< boolean >  {async function verifyMigration(dexieData: MigrationData): Promise< boolean >  { 
			
		
	
		
		
			
				
					  // Verify account count  // Verify account count 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -307,18 +321,21 @@ async function verifyMigration(dexieData: MigrationData): Promise<boolean> { 
			
		
	
		
		
			
				
					## Performance Considerations## Performance Considerations 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### 1. Indexing### 1. Indexing 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					- Dexie automatically creates indexes based on the schema- Dexie automatically creates indexes based on the schema 
			
		
	
		
		
			
				
					- absurd-sql requires explicit index creation- absurd-sql requires explicit index creation 
			
		
	
		
		
			
				
					- Added indexes for frequently queried fields- Added indexes for frequently queried fields 
			
		
	
		
		
			
				
					- Use `PRAGMA journal_mode=MEMORY;`  for better performance- Use `PRAGMA journal_mode=MEMORY;`  for better performance 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### 2. Batch Operations### 2. Batch Operations 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					- Dexie has built-in bulk operations- Dexie has built-in bulk operations 
			
		
	
		
		
			
				
					- absurd-sql uses transactions for batch operations- absurd-sql uses transactions for batch operations 
			
		
	
		
		
			
				
					- Consider chunking large datasets- Consider chunking large datasets 
			
		
	
		
		
			
				
					- Use prepared statements for repeated queries- Use prepared statements for repeated queries 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### 3. Query Optimization### 3. Query Optimization 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					- Dexie uses IndexedDB's native indexing- Dexie uses IndexedDB's native indexing 
			
		
	
		
		
			
				
					- absurd-sql requires explicit query optimization- absurd-sql requires explicit query optimization 
			
		
	
		
		
			
				
					- Use prepared statements for repeated queries- Use prepared statements for repeated queries 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -327,6 +344,7 @@ async function verifyMigration(dexieData: MigrationData): Promise<boolean> { 
			
		
	
		
		
			
				
					## Error Handling## Error Handling 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### 1. Common Errors### 1. Common Errors 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie errors// Dexie errors 
			
		
	
		
		
			
				
					try {try { 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -351,6 +369,7 @@ try { 
			
		
	
		
		
			
				
					`````` 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					### 2. Transaction Recovery### 2. Transaction Recovery 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					```typescript```typescript 
			
		
	
		
		
			
				
					// Dexie transaction// Dexie transaction 
			
		
	
		
		
			
				
					try {try {