Skip to content

Commit a7a9d77

Browse files
committed
flag to enable/disable manual schema mode
1 parent 0e83990 commit a7a9d77

File tree

2 files changed

+31
-26
lines changed

2 files changed

+31
-26
lines changed

demos/supabase-todolist/lib/models/schema.dart

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:powersync_attachments_helper/powersync_attachments_helper.dart';
44
const todosTable = 'todos';
55
const listsRawTable = 'lists';
66

7+
const manualSchemaMngmtMode = true;
78

89
Schema schema = Schema([
910
const Table(todosTable, [
@@ -19,30 +20,32 @@ Schema schema = Schema([
1920
// Index to allow efficient lookup within a list
2021
Index('list', [IndexedColumn('list_id')])
2122
]),
22-
// const Table('lists', [
23-
// Column.text('created_at'),
24-
// Column.text('name'),
25-
// Column.text('owner_id')
26-
// ]),
23+
if (!manualSchemaMngmtMode)
24+
const Table('lists', [
25+
Column.text('created_at'),
26+
Column.text('name'),
27+
Column.text('owner_id')
28+
]),
2729
AttachmentsQueueTable(
2830
attachmentsQueueTableName: defaultAttachmentsQueueTableName,
2931
),
3032
], rawTables: [
31-
RawTable(
32-
name: 'lists',
33-
put: PendingStatement(
34-
sql:
35-
"INSERT OR REPLACE INTO $listsRawTable (id, created_at, name, owner_id) VALUES (?, ?, ?, ?);",
36-
params: [
37-
PendingStmtValueId(),
38-
PendingStmtValueColumn('created_at'),
39-
PendingStmtValueColumn('name'),
40-
PendingStmtValueColumn('owner_id'),
41-
],
42-
),
43-
delete: PendingStatement(
44-
sql: "DELETE FROM $listsRawTable WHERE id = ?",
45-
params: [PendingStmtValueId()],
46-
),
47-
)
33+
if (manualSchemaMngmtMode)
34+
RawTable(
35+
name: 'lists',
36+
put: PendingStatement(
37+
sql:
38+
"INSERT OR REPLACE INTO $listsRawTable (id, created_at, name, owner_id) VALUES (?, ?, ?, ?);",
39+
params: [
40+
PendingStmtValueId(),
41+
PendingStmtValueColumn('created_at'),
42+
PendingStmtValueColumn('name'),
43+
PendingStmtValueColumn('owner_id'),
44+
],
45+
),
46+
delete: PendingStatement(
47+
sql: "DELETE FROM $listsRawTable WHERE id = ?",
48+
params: [PendingStmtValueId()],
49+
),
50+
)
4851
]);

demos/supabase-todolist/lib/powersync.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,13 +164,15 @@ Future<void> openDatabase() async {
164164
schema: schema,
165165
path: dbPath,
166166
logger: attachedLogger,
167-
manualSchemaManagement: true,
167+
manualSchemaManagement: manualSchemaMngmtMode,
168168
);
169169
await db.initialize();
170170

171-
await initializeRawTablesSchema(db);
172-
await db.updateSchema(schema);
173-
await db.markSchemaAsReady();
171+
if (manualSchemaMngmtMode) {
172+
await initializeRawTablesSchema(db);
173+
await db.updateSchema(schema);
174+
await db.markSchemaAsReady();
175+
}
174176

175177
await loadSupabase();
176178

0 commit comments

Comments
 (0)