У меня есть проект React Native, использующий SQLite3 для хранения данных, и мне нужно иметь предварительно заполненную базу данных, но из RN и из терминала один и тот же файл содержит разные данные и разные таблицы кажется, что есть разные файлы
Я создал void файл mobile-agents.db
через терминал macOS (bash), и я создал несколько таблиц и заполнил их некоторыми данными.
ЕслиЯ проверяю через терминал, как это
$ sqlite3 mobile-agents.db
sqlite3> # ... create logs table
sqlite3> # ... insert some data
sqlite3> select * from logs;
У меня есть ожидаемые данные.
Когда я использую его через React Native code (javascript), я обнаружил базу данных, но без таблиц.
Если я создаю таблицы и вставляю некоторые данные через код RN, я вижу только данные из кода , если я ищу данные из данных терминала, то там нет
Реагирует на собственный код
SQLite.openDatabase({
name: "mobileAgents.db",
createFromLocation: "~mobileAgents.db",
location: "Library"
})
.then( db => {
db.transaction( trx => {
trx.executeSql( "INSERT INTO logs(id, moment, location, description, data) VALUES(50, "+ (new Date()).getTime() +", '37.62345678,12.62345678', 'daCodice', '987987');", [])
trx.executeSql("SELECT * FROM logs;", [])
.then( results => {
let rows = [];
for( let i = 0; i<results[1].rows.length; i++ ) {
console.log(results[1].rows.item(i));
}
})
;
})
.then( result => {
console.log("then transaction");
console.log(result);
})
.catch( e => {
console.error( e );
});
})
.catch( err => {
console.log(err);
});
с терминала
sqlite3> .tables;
результат
table|logs|logs|2|CREATE TABLE logs (id, moment, location, description, data)
с кодом RN
trx.executeSql("SELECT name, rootpage FROM sqlite_master;", [])
.then( results => {
for( let i = 0; i<results[1].rows.length; i++ ) console.log(results[1].rows.item(i));
});
результат
{rootpage: 3, name: "android_metadata"}
{rootpage: 4, name: "logs"}