在我SQLiteOpenHelper有一个onCreate(SQLiteDatabase ...)方法,我用一些初始数据填充数据库表.
有没有办法在第一个应用程序运行时将一些数据插入Room数据库表?
我正在尝试用一些条目预先填充房间数据库。关于api调用的文档很清楚(developer.android docs),并且我读过一篇很好的博客(Medium文章),但我不熟悉实际预打包数据库文件的语法/格式(developmentData.db在下面的示例中) 。我在搜索过的任何地方都找不到任何文档。
Room
.databaseBuilder(
context.applicationContext,
MyDatabase::class.java,
"my_database")
.fallbackToDestructiveMigration()
.createFromAsset("database/developmentData.db")
.build()
Run Code Online (Sandbox Code Playgroud)
我已按照文档导出架构。以下是该过程的结果,供参考。在这种情况下,我只是创建一个虚拟对象,以便在这里提出我的问题。
{
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "0ad43a6714902eedbb90c1f77ab1ffcb",
"entities": [
{
"tableName": "library_table",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`libraryId` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `title` TEXT NOT NULL, `description` TEXT NOT NULL)",
"fields": [
{
"fieldPath": "libraryId",
"columnName": "libraryId",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT",
"notNull": true
}, …Run Code Online (Sandbox Code Playgroud)