작성
·
280
0
final db = await databaseFactoryFfi.openDatabase(inMemoryDatabasePath);
final db = await databaseFactoryFfi.openDatabase(inMemoryDatabasePath);
import 'package:flutter_architecture/data/data_source/note_db_helper.dart';
import 'package:sqflite/sqflite.dart';
class SqfLiteDatabase {
static const tableName = 'note';
static const databaseName = 'notes_db';
static final SqfLiteDatabase _singleton = SqfLiteDatabase._internal();
factory SqfLiteDatabase() {
return _singleton;
}
SqfLiteDatabase._internal();
Future<Database> database = initializeDatabase();
static Future<Database> initializeDatabase() async {
Database database = await openDatabase(
databaseName,
version: 1,
onCreate: (db, version) async {
await db
.execute('CREATE TABLE $tableName (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, content TEXT, color INTEGER, timeStamp INTEGER)');
},
);
return database;
// NoteDBHelper(database);
}
}
답변 1
1
provider_setup 에 쓴 코드는 모두 싱글톤이 맞습니다.
initializeDatabase(Database db) 처럼 수정하셔서 외부에서 db를 받을 수 있도록 수정하시면 될 것 같습니다.
테스트 할 때 Database를 교체해야 테스트가 가능하니까요.