为react native播种300mb Sqlite数据库?

gg58donl  于 2023-05-18  发布在  SQLite
关注(0)|答案(1)|浏览(139)

问题

我有一个很大的sqlite数据库(~ 300 mb),我想用它来为我的应用程序加载种子,并存储到文件系统以使用sqlite查询。对于上下文,它是一个语言字典应用程序。
我环顾四周,没有找到一个适合我情况的解决方案。理想情况下,我知道我可以使用@capacitor-community/sqlite"插件中的importFromJson函数。
这个问题是,文件似乎太大+无法找到适用的示例来正确实现,因为这对我来说都是新的。
我正在遵循这个例子:https://github.com/jepiqueau/react-sqlite-app-starter/blob/02809174e3b5bb355e506ed3bf20e1a92c74f860/src/pages/Tab1.tsx#L22
const retImport: any = await sqlite.importFromJson(JSON.stringify(jsonImport));
如果我对数据进行字符串化,我确信这是行不通的,因为数据会消耗太多的资源。

预期结果

我希望能够导入大型(~ 300 MB)sqlite或JSON文件来为我的react ionic数据库提供种子,以便与Sqlite一起使用。
有没有一种方法,我可以流的json文件,上传它在块?我知道如何处理fs,但我不知道如何处理react native + ionic + @capacitor-community/sqlite。

deikduxw

deikduxw1#

好的!所以我解决了这个问题,使用capacitor sqlite社区插件为react ionic native导入.sqlite db转储。

如何导入和使用.sqlite文件

1.从sqlite3数据库导出文件
1.将该文件作为<name>.db复制到public/assets/databases文件夹中。**确保将扩展名更改为.db**并在同一目录下的databases.json文件中添加定义
{“databaseList”:[“test_db.db”] }
1.在通过名称连接到数据库之前,请在从App.tsx文件导入import { sqlite, existingConn } from '../App';之后使用函数await sqlite.copyFromAssets();,如我之前链接的样板中所述。请参考App.tsx + Index.tsx文件。
1.创建连接并连接到数据库

const db = await sqlite.createConnection("<db_name>", false, "no-encryption", 1);
  await db.open();

1.然后,假设您知道要查询的表的名称,您应该能够查询这个数据库。

let values = await db.query(`SELECT * FROM <table_name> LIMIT 10;`)

相关问题