У меня есть этот код, чтобы проверить, существует ли база данных или нет, и проверить версию базы данных, чтобы я мог загрузить новую версию базы данных.
export function getDatabase()
{
return SQLite.openDatabase(c.APP_DATABASE_LOCAL_NAME);
}
export function checkDatabase(callback)
{
database = getDatabase();
console.log(database);
database.transaction(
tx => {
tx.executeSql('select Version from INFO',
[],
(_, { rows }) =>{
let versiondata = rows._array[0];
if (versiondata.Version !== c.APP_DATA_VERSION)
{
console.log("wrong version download");
downloadDatabase(callback);
} else callback(true);
},
(_,error) => {
console.log("no database download");
downloadDatabase(callback);
});
},
null,
null
);
}
export function downloadDatabase(callback)
{
FileSystem.downloadAsync(
Asset.fromModule(require('../../assets/data/database.db')).uri,
FileSystem.documentDirectory + 'SQLite/' + c.APP_DATABASE_LOCAL_NAME
)
.then(({ uri }) => {
console.log('Finished downloading to ', uri);
callback(true);
})
.catch(error => {
console.error(error);
});
}
Проблемы возникают, когда я загружаюбаза данных, новая база данных заменяет файл database.db, но каким-то образом соединение все еще подключается к старой базе данных.каждый запрос к базе данных возвращает ошибку, так как в этой соединительной базе данных нет таблицы.Есть ли как-то, как я могу закрыть или переподключить базу данных.Спасибо