Skip to content

Commit adf7dfa

Browse files
committed
Remove manual schema management APIs
1 parent d6928dd commit adf7dfa

File tree

6 files changed

+3
-64
lines changed

6 files changed

+3
-64
lines changed

packages/powersync_core/lib/src/database/native/native_powersync_database.dart

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,6 @@ class PowerSyncDatabaseImpl
4545
@override
4646
SqliteDatabase database;
4747

48-
@override
49-
bool manualSchemaManagement;
50-
5148
@override
5249
@protected
5350
late Future<void> isInitialized;
@@ -80,7 +77,6 @@ class PowerSyncDatabaseImpl
8077
required String path,
8178
int maxReaders = SqliteDatabase.defaultMaxReaders,
8279
Logger? logger,
83-
bool manualSchemaManagement = false,
8480
@Deprecated("Use [PowerSyncDatabase.withFactory] instead.")
8581
// ignore: deprecated_member_use_from_same_package
8682
SqliteConnectionSetup? sqliteSetup}) {
@@ -93,7 +89,6 @@ class PowerSyncDatabaseImpl
9389
schema: schema,
9490
maxReaders: maxReaders,
9591
logger: logger,
96-
manualSchemaManagement: manualSchemaManagement,
9792
);
9893
}
9994

@@ -110,14 +105,12 @@ class PowerSyncDatabaseImpl
110105
required Schema schema,
111106
int maxReaders = SqliteDatabase.defaultMaxReaders,
112107
Logger? logger,
113-
bool manualSchemaManagement = false,
114108
}) {
115109
final db = SqliteDatabase.withFactory(openFactory, maxReaders: maxReaders);
116110
return PowerSyncDatabaseImpl.withDatabase(
117111
schema: schema,
118112
database: db,
119113
logger: logger,
120-
manualSchemaManagement: manualSchemaManagement,
121114
);
122115
}
123116

@@ -130,7 +123,6 @@ class PowerSyncDatabaseImpl
130123
required this.schema,
131124
required this.database,
132125
Logger? logger,
133-
this.manualSchemaManagement = false,
134126
}) {
135127
this.logger = logger ?? autoLogger;
136128
isInitialized = baseInit();

packages/powersync_core/lib/src/database/powersync_database.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,13 @@ abstract class PowerSyncDatabase
3636
required Schema schema,
3737
required String path,
3838
Logger? logger,
39-
bool manualSchemaManagement = false,
4039
@Deprecated("Use [PowerSyncDatabase.withFactory] instead.")
4140
// ignore: deprecated_member_use_from_same_package
4241
SqliteConnectionSetup? sqliteSetup,
4342
}) {
4443
return PowerSyncDatabaseImpl(
4544
schema: schema,
4645
path: path,
47-
manualSchemaManagement: manualSchemaManagement,
4846
logger: logger,
4947
// ignore: deprecated_member_use_from_same_package
5048
sqliteSetup: sqliteSetup,
@@ -63,14 +61,12 @@ abstract class PowerSyncDatabase
6361
DefaultSqliteOpenFactory openFactory, {
6462
required Schema schema,
6563
int maxReaders = SqliteDatabase.defaultMaxReaders,
66-
bool manualSchemaManagement = false,
6764
Logger? logger,
6865
}) {
6966
return PowerSyncDatabaseImpl.withFactory(
7067
openFactory,
7168
schema: schema,
7269
maxReaders: maxReaders,
73-
manualSchemaManagement: manualSchemaManagement,
7470
logger: logger,
7571
);
7672
}

packages/powersync_core/lib/src/database/powersync_database_impl_stub.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ class PowerSyncDatabaseImpl
3232
@override
3333
SqliteDatabase get database => throw UnimplementedError();
3434

35-
@override
36-
bool get manualSchemaManagement => throw UnimplementedError();
37-
3835
@override
3936
Future<void> get isInitialized => throw UnimplementedError();
4037

@@ -56,7 +53,6 @@ class PowerSyncDatabaseImpl
5653
{required Schema schema,
5754
required String path,
5855
int maxReaders = SqliteDatabase.defaultMaxReaders,
59-
bool manualSchemaManagement = false,
6056
Logger? logger,
6157
@Deprecated("Use [PowerSyncDatabase.withFactory] instead.")
6258
// ignore: deprecated_member_use_from_same_package
@@ -76,7 +72,6 @@ class PowerSyncDatabaseImpl
7672
DefaultSqliteOpenFactory openFactory, {
7773
required Schema schema,
7874
int maxReaders = SqliteDatabase.defaultMaxReaders,
79-
bool manualSchemaManagement = false,
8075
Logger? logger,
8176
}) {
8277
throw UnimplementedError();
@@ -90,7 +85,6 @@ class PowerSyncDatabaseImpl
9085
factory PowerSyncDatabaseImpl.withDatabase({
9186
required Schema schema,
9287
required SqliteDatabase database,
93-
bool manualSchemaManagement = false,
9488
Logger? logger,
9589
}) {
9690
throw UnimplementedError();

packages/powersync_core/lib/src/database/powersync_db_mixin.dart

Lines changed: 1 addition & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ mixin PowerSyncDatabaseMixin implements SqliteConnection {
3838
/// Use [attachedLogger] to propagate logs to [Logger.root] for custom logging.
3939
Logger get logger;
4040

41-
bool get manualSchemaManagement;
42-
43-
bool _manualSchemaManagementCompleted = false;
44-
4541
@Deprecated("This field is unused, pass params to connect() instead")
4642
Map<String, dynamic>? clientParams;
4743

@@ -114,36 +110,10 @@ mixin PowerSyncDatabaseMixin implements SqliteConnection {
114110
statusStream = statusStreamController.stream;
115111
updates = powerSyncUpdateNotifications(database.updates);
116112

117-
_manualSchemaManagementCompleted = false;
118-
119113
await database.initialize();
120114
await _checkVersion();
121115
await database.execute('SELECT powersync_init()');
122-
123-
if (!manualSchemaManagement) {
124-
// Create the internal db schema
125-
await updateSchema(schema);
126-
await _afterSchemaReady();
127-
}
128-
}
129-
130-
Future<void> markSchemaAsReady() async {
131-
await isInitialized;
132-
_manualSchemaManagementCompleted = true;
133-
134-
await _afterSchemaReady();
135-
}
136-
137-
void _checkSchemaIsReady() {
138-
if (!manualSchemaManagement || _manualSchemaManagementCompleted) {
139-
return;
140-
}
141-
142-
throw StateError(
143-
'In manual schema management mode, you need to mark the powersync database as ready');
144-
}
145-
146-
Future<void> _afterSchemaReady() async {
116+
await updateSchema(schema);
147117
await _updateHasSynced();
148118
}
149119

@@ -319,8 +289,6 @@ mixin PowerSyncDatabaseMixin implements SqliteConnection {
319289
// the lock for the connection.
320290
await initialize();
321291

322-
_checkSchemaIsReady();
323-
324292
final resolvedOptions = ResolvedSyncOptions.resolve(
325293
options,
326294
crudThrottleTime: crudThrottleTime,
@@ -484,15 +452,13 @@ mixin PowerSyncDatabaseMixin implements SqliteConnection {
484452
/// Get an unique id for this client.
485453
/// This id is only reset when the database is deleted.
486454
Future<String> getClientId() async {
487-
_checkSchemaIsReady();
488455
final row = await get('SELECT powersync_client_id() as client_id');
489456
return row['client_id'] as String;
490457
}
491458

492459
/// Get upload queue size estimate and count.
493460
Future<UploadQueueStats> getUploadQueueStats(
494461
{bool includeSize = false}) async {
495-
_checkSchemaIsReady();
496462
if (includeSize) {
497463
final row = await getOptional(
498464
'SELECT SUM(cast(data as blob) + 20) as size, count(*) as count FROM ps_crud');
@@ -520,7 +486,6 @@ mixin PowerSyncDatabaseMixin implements SqliteConnection {
520486
/// data by transaction. One batch may contain data from multiple transactions,
521487
/// and a single transaction may be split over multiple batches.
522488
Future<CrudBatch?> getCrudBatch({int limit = 100}) async {
523-
_checkSchemaIsReady();
524489
final rows = await getAll(
525490
'SELECT id, tx_id, data FROM ps_crud ORDER BY id ASC LIMIT ?',
526491
[limit + 1]);
@@ -567,7 +532,6 @@ mixin PowerSyncDatabaseMixin implements SqliteConnection {
567532
/// Unlike [getCrudBatch], this only returns data from a single transaction at a time.
568533
/// All data for the transaction is loaded into memory.
569534
Future<CrudTransaction?> getNextCrudTransaction() async {
570-
_checkSchemaIsReady();
571535
return await readTransaction((tx) async {
572536
final first = await tx.getOptional(
573537
'SELECT id, tx_id, data FROM ps_crud ORDER BY id ASC LIMIT 1');

packages/powersync_core/lib/src/database/web/web_powersync_database.dart

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ class PowerSyncDatabaseImpl
3939
@override
4040
SqliteDatabase database;
4141

42-
@override
43-
bool manualSchemaManagement;
44-
4542
@override
4643
@protected
4744
late Future<void> isInitialized;
@@ -73,7 +70,6 @@ class PowerSyncDatabaseImpl
7370
{required Schema schema,
7471
required String path,
7572
int maxReaders = SqliteDatabase.defaultMaxReaders,
76-
bool manualSchemaManagement = false,
7773
Logger? logger,
7874
@Deprecated("Use [PowerSyncDatabase.withFactory] instead.")
7975
// ignore: deprecated_member_use_from_same_package
@@ -85,7 +81,6 @@ class PowerSyncDatabaseImpl
8581
maxReaders: maxReaders,
8682
logger: logger,
8783
schema: schema,
88-
manualSchemaManagement: manualSchemaManagement,
8984
);
9085
}
9186

@@ -101,12 +96,10 @@ class PowerSyncDatabaseImpl
10196
DefaultSqliteOpenFactory openFactory,
10297
{required Schema schema,
10398
int maxReaders = SqliteDatabase.defaultMaxReaders,
104-
bool manualSchemaManagement = false,
10599
Logger? logger}) {
106100
final db = SqliteDatabase.withFactory(openFactory, maxReaders: 1);
107101
return PowerSyncDatabaseImpl.withDatabase(
108102
schema: schema,
109-
manualSchemaManagement: manualSchemaManagement,
110103
logger: logger,
111104
database: db,
112105
);
@@ -120,7 +113,6 @@ class PowerSyncDatabaseImpl
120113
PowerSyncDatabaseImpl.withDatabase({
121114
required this.schema,
122115
required this.database,
123-
this.manualSchemaManagement = false,
124116
Logger? logger,
125117
}) {
126118
if (logger != null) {

packages/powersync_core/test/utils/abstract_test_utils.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,11 @@ extension MockSync on PowerSyncDatabase {
153153
PowerSyncBackendConnector connector, {
154154
Logger? logger,
155155
SyncOptions options = const SyncOptions(retryDelay: Duration(seconds: 5)),
156+
Schema? customSchema,
156157
}) {
157158
final impl = StreamingSyncImplementation(
158159
adapter: BucketStorage(this),
159-
schemaJson: jsonEncode(schema),
160+
schemaJson: jsonEncode(customSchema ?? schema),
160161
client: client,
161162
options: ResolvedSyncOptions(options),
162163
connector: InternalConnector.wrap(connector, this),

0 commit comments

Comments
 (0)