I am trying to import data from a database file, but I am facing an errorE/SupportSQLite: Corruption reported by sqlite on database: /data/user/0/com.example.foodie/databases/foodie_database.db.
These are some error logs:
/SQLiteDatabase: Database corruption detected in open() android.database.sqlite.SQLiteDatabaseCorruptException: file is not a database (code 26 SQLITE_NOTADB[26]): , while compiling: PRAGMA journal_mode E/SQLiteLog: (11) Invalid MagicHeader! (11) Corrupt in lockBtree: rc 26, nPageHeader 1919251316, nPageFile 1 (11) printing out first page (size: 4096) of DB /data/user/0/com.example.foodie/databases/foodie_database.db
AppDatabase.kt
@Database(
entities = [MenuItem::class,
Order::class,
OrderItem::class,
Restaurant::class,
RestaurantRating::class,
User::class,
UserFavorite::class,
UserSearch::class],
version = 15,
exportSchema = false)
abstract class AppDatabase: RoomDatabase() {
abstract val orderDao: OrderDao
abstract val restaurantDao: RestaurantDao
abstract val userDao: UserDao
companion object{
@Volatile
private var INSTANCE: AppDatabase? = null
fun getInstance(context: Context): AppDatabase {
synchronized(this) {
var instance = INSTANCE
if (instance == null) {
instance = Room.databaseBuilder(
context.applicationContext,
AppDatabase::class.java,
"foodie_database.db"
)
.fallbackToDestructiveMigration()
.createFromAsset("databases/loadData.db")
.build()
INSTANCE = instance
}
return instance
}
}
}
}
loadData.db
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "restaurant_table" (
"restaurantId" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"restaurant_name" TEXT NOT NULL,
"phone_number" TEXT NOT NULL,
"Category" TEXT NOT NULL,
"location" TEXT NOT NULL,
);
insert into "restaurant_table" values (1, 'Burger King', '123456789', 'Fast Food', 'location');
insert into "restaurant_table" values (3, 'Pizza', '9876543210', 'Fast Food', 'location');
COMMIT;
Restaurant Entity in Room
@Entity(tableName = "restaurant_table")
data class Restaurant(
@PrimaryKey(autoGenerate = true)
val restaurantId: Long = 0L,
@ColumnInfo(name = "restaurant_name")
val restaurantName: String,
@ColumnInfo(name = "phone_number")
val phoneNumber: String,
@ColumnInfo(name = "Category")
val category: String,
@ColumnInfo(name = "location")
val location: String,
)