bug: exportToJson: Error get tables 'Full' failed : Query result not well formatted
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, sqlite, swift
Línea de trabajo
Comienza con el wrapper exportToJson de sqliteLoader.js y reproduce el fallo en iOS usando el esquema users proporcionado. Comprueba la configuración de createSyncTable y la ruta de exportación del plugin para iOS para averiguar por qué se rechaza el resultado de la consulta Full; se considera terminado cuando la exportación de las tablas a JSON se realiza correctamente para esta base de datos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Plugin version:
7.0.1
Platform(s):
iOS
Current behavior:
exportToJson: Error get tables 'Full' failed : Query result not well formatted
Expected behavior:
Succeed in exporting tables to JSON
Steps to reproduce:
async exportToJson(mode = 'full') {
console.log('[ sqliteLoader.js ] Exporting database to JSON...');
return await sqlite.exportToJson({
database: DB_NAME,
jsonexportmode: mode
});
},
Related code:
Sample table:
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
lastName TEXT,
phoneNumber TEXT,
email TEXT,
sobrietyDate TEXT,
homeGroups TEXT,
preferences TEXT,
privacySettings TEXT,
notificationSettings TEXT, -- JSON string for notification preferences
createdAt TEXT DEFAULT CURRENT_TIMESTAMP,
updatedAt TEXT DEFAULT CURRENT_TIMESTAMP,
sql_deleted BOOLEAN DEFAULT 0 CHECK (sql_deleted IN (0, 1)),
last_modified INTEGER DEFAULT (strftime('%s', 'now'))
)
import { CapacitorSQLite } from '@capacitor-community/sqlite';
// Default database name for consistency
const DB_NAME = 'tracker.db';
/**
* Initialize SQLite database
* @returns {Promise<object>} Database connection object
*/
export default async function initSQLiteDatabase() {
console.log('[ sqliteLoader.js:14 ] Initializing SQLite database via Capacitor...');
try {
const sqlite = CapacitorSQLite;
if (!sqlite) {
throw new Error('CapacitorSQLite plugin not found - this app requires SQLite for iOS');
}
console.log('[ sqliteLoader.js ] Found CapacitorSQLite plugin:', !!sqlite);
// Step 1: Create connection (check if already exists first)
try {
await sqlite.createConnection({
database: DB_NAME,
version: 1,
encrypted: false,
mode: 'no-encryption',
readonly: false
});
console.log('[ sqliteLoader.js:50 ] Database connection created');
} catch (connectionError) {
console.log('[ sqliteLoader.js:52 ] Connection may already exist:', connectionError.message);
}
// Step 2: Open the database
await sqlite.open({ database: DB_NAME, readonly: false });
console.log('[ sqliteLoader.js:56 ] Database opened successfully');
// Step 3: Create sync table (required for CapacitorSQLite export/import operations)
await sqlite.createSyncTable({ database: DB_NAME });
console.log('[ sqliteLoader.js:58 ] Sync table created successfully');
// Sync methods for iCloud integration
async exportToJson(mode = 'full') {
console.log('[ sqliteLoader.js ] Exporting database to JSON...');
return await sqlite.exportToJson({
database: DB_NAME,
jsonexportmode: mode
});
},
async importFromJson(jsonData) {
console.log('[ sqliteLoader.js ] Importing database from JSON...');
return await sqlite.importFromJson({
jsonstring: JSON.stringify(jsonData)
});
},
async setSyncDate(syncDate) {
console.log('[ sqliteLoader.js ] Setting sync date...');
return await sqlite.setSyncDate({
database: DB_NAME,
syncdate: syncDate
});
},
async deleteExportedRows() {
console.log('[ sqliteLoader.js ] Deleting exported rows...');
return await sqlite.deleteExportedRows({
database: DB_NAME
});
}
};
} catch (error) {
console.error('[ sqliteLoader.js ] Database initialization failed:', error);
throw error;
}
}
Other information:
I have read through https://github.com/capacitor-community/sqlite/issues/59 and it is long-closed, but I am having this problem repeatedly and cannot find a fix for it.
Capacitor doctor:
% npx cap doctor
💊 Capacitor Doctor 💊
Latest Dependencies:
@capacitor/cli: 7.4.2
@capacitor/core: 7.4.2
@capacitor/android: 7.4.2
@capacitor/ios: 7.4.2
Installed Dependencies:
@capacitor/cli: 7.4.2
@capacitor/core: 7.4.2
@capacitor/android: 7.4.2
@capacitor/ios: 7.4.2
[success] iOS looking great! 👌
[error] gradlew file is missing in android
AndroidManifest.xml is missing in app/src/main
Expected, since I'm not currently working on Android.
- Lenguaje dominante
- Swift
- Estrellas
- 663
- Forks
- 159
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de capacitor-community/sqlite
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
capacitor-community/sqlite#700 · 1 comentario · 1 reacción ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
capacitor-community/sqlite#693 · 7 reacciones ·
-
bug/fix needs: triage
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
capacitor-community/sqlite#690 ·
-
feature needs: triage
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
capacitor-community/sqlite#689 ·
-
bug/fix needs: triage
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
capacitor-community/sqlite#685 ·
Todos los issues de capacitor-community/sqlite
Issues similares
-
area: agents area: cli bug difficulty:2 help wanted S3: minor
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
manaflow-ai/cmux#15718 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
mozilla-mobile/firefox-ios#35850 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
chattymin/PokeTokenBar#385 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
appandflow/stim#1941 ·
Los mantenedores suelen responder en 1 día
-
product / avatars product / self-hosted product / storage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
appwrite/appwrite#13985 · 1 comentario ·
Los mantenedores suelen responder en 1 día