Skip to content

Commit bbcb852

Browse files
committed
before close, db will be auto committed
1 parent 30e6a92 commit bbcb852

File tree

6 files changed

+12
-5
lines changed

6 files changed

+12
-5
lines changed

packages/nitrite/lib/src/nitrite_database.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,9 @@ class NitriteDatabase extends Nitrite {
103103
checkOpened();
104104
try {
105105
await _nitriteStore.beforeClose();
106-
if (await hasUnsavedChanges) {
106+
var shouldAutoCommit =
107+
!_nitriteStore.isReadOnly && await hasUnsavedChanges;
108+
if (shouldAutoCommit) {
107109
_log.fine('Unsaved changes detected, committing the changes.');
108110
await _nitriteStore.commit();
109111
}
@@ -127,7 +129,11 @@ class NitriteDatabase extends Nitrite {
127129
Future<void> commit() async {
128130
checkOpened();
129131
try {
130-
await _nitriteStore.commit();
132+
if (!_nitriteStore.isReadOnly) {
133+
await _nitriteStore.commit();
134+
} else {
135+
_log.warning('Cannot commit on read-only database.');
136+
}
131137
} catch (e, stackTrace) {
132138
throw NitriteIOException('Error occurred while committing the database',
133139
stackTrace: stackTrace, cause: e);

packages/nitrite/lib/src/store/memory/in_memory_meta.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
Map<String, String> meta = <String, String>{
44
"version": "1.1.1",
55
};
6+

packages/nitrite/lib/src/store/memory/in_memory_store.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class InMemoryStore extends AbstractNitriteStore<InMemoryConfig> {
1717
bool get isClosed => _closed;
1818

1919
@override
20-
Future<bool> get hasUnsavedChanges async => false;
20+
Future<bool> get hasUnsavedChanges async => true;
2121

2222
@override
2323
bool get isReadOnly => false;

packages/nitrite/test/nitrite_builder_test.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ void main() {
4444
.openOrCreate();
4545

4646
await expectLater(() => db!.getRepository<DateTime>(), returnsNormally);
47-
await db!.commit();
4847
});
4948
});
5049
}

packages/nitrite_hive_adapter/lib/src/store/hive_meta.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
Map<String, String> meta = <String, String>{
44
"version": "2.2.3",
55
};
6+

packages/nitrite_hive_adapter/lib/src/store/hive_store.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class HiveStore extends AbstractNitriteStore<HiveConfig> {
6767
}
6868

6969
@override
70-
Future<bool> get hasUnsavedChanges async => false;
70+
Future<bool> get hasUnsavedChanges async => true;
7171

7272
@override
7373
bool get isClosed => _closed;

0 commit comments

Comments
 (0)