On creating my sqflite database,i create my table activity_table using the 'onCreate' parameter. it starts with 0 records. i can insert ,edit and delete records in it. i can query and check the count of records. everything is working fine.
problem: But after hot restart,the table is getting empty.
class ActivityDB {
static final ActivityDB instance = ActivityDB._internal();
ActivityDB._internal();
static Database? _database;
Future<Database> get database async {
if (_database != null) {
return _database!;
}
_database = await _init();
return _database!;
}
Future<Database> _init() async {
Database db = await openDatabase(
join(await getDatabasesPath(), 'activity.db'), //path
onCreate: (db, version) async {
await db.execute('''CREATE TABLE activity_table
(
id TEXT PRIMARY KEY,
title TEXT NOT NULL,
)''');
},
version: 1,
);
}
editActivity({required Activity activity,}) async {
Database db = await database;
await db.update(
'activity_table',
activity.toMap(),
where: 'id = ?',
whereArgs: [
activity.id,
],
);
}
addActivity(Activity activity) async {
Database db = await database;
await db
.insert(
'activity_table',
activity.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
removeActivity(String id) async {
Database db = await database;
await db.delete(
'activity_table',
where: 'id = ?',
whereArgs: [id],
);
}
On every hot restart allActivity() is empty
allActivity() async {
Database db = await database;
List<Map<String, dynamic>> activitiesMapFromDB = await db.query('activity_table');
return activitiesMapFromDB;
}
}