fix: Preserve shared model and SQLite value types during sync (#118)

This commit is contained in:
Marcelo Mendonça Soares 2026-09-16 00:07:51 -03:00 • committed by GitHub
commit 1f5501ff97
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 25604 additions and 51 deletions

View file

@ -0,0 +1,216 @@
{
"__className__": "serverpod.DatabaseMigration",
"actions": [
{
"__className__": "serverpod.DatabaseMigrationAction",
"type": "createTable",
"createTable": {
"__className__": "serverpod.TableDefinition",
"name": "shared_child",
"dartName": "SharedChild",
"module": "serverpod_offline_sync_test",
"schema": "public",
"columns": [
{
"__className__": "serverpod.ColumnDefinition",
"name": "id",
"fieldName": "id",
"columnType": 7,
"isNullable": false,
"columnDefault": "random_v7",
"dartType": "UuidValue?"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "spaceId",
"fieldName": "spaceId",
"columnType": 6,
"isNullable": true,
"dartType": "int?"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "name",
"fieldName": "name",
"columnType": 0,
"isNullable": false,
"dartType": "String"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "flavor",
"fieldName": "flavor",
"columnType": 0,
"isNullable": false,
"columnDefault": "'plain'",
"dartType": "serverpod_offline_sync_test_shared:SharedFlavor"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "parentId",
"fieldName": "parentId",
"columnType": 7,
"isNullable": true,
"dartType": "UuidValue?"
}
],
"foreignKeys": [
{
"__className__": "serverpod.ForeignKeyDefinition",
"constraintName": "shared_child_fk_0",
"columns": [
"spaceId"
],
"referenceTable": "offline_sync_spaces",
"referenceTableSchema": "public",
"referenceColumns": [
"id"
],
"onUpdate": 3,
"onDelete": 4
},
{
"__className__": "serverpod.ForeignKeyDefinition",
"constraintName": "shared_child_fk_1",
"columns": [
"parentId"
],
"referenceTable": "shared_parent",
"referenceTableSchema": "public",
"referenceColumns": [
"id"
],
"onUpdate": 3,
"onDelete": 0,
"deferrable": "initiallyDeferred"
}
],
"indexes": [],
"managed": true
}
},
{
"__className__": "serverpod.DatabaseMigrationAction",
"type": "createTable",
"createTable": {
"__className__": "serverpod.TableDefinition",
"name": "shared_parent",
"dartName": "SharedParent",
"module": "serverpod_offline_sync_test",
"schema": "public",
"columns": [
{
"__className__": "serverpod.ColumnDefinition",
"name": "id",
"fieldName": "id",
"columnType": 7,
"isNullable": false,
"columnDefault": "random_v7",
"dartType": "UuidValue?"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "spaceId",
"fieldName": "spaceId",
"columnType": 6,
"isNullable": true,
"dartType": "int?"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "name",
"fieldName": "name",
"columnType": 0,
"isNullable": false,
"dartType": "String"
}
],
"foreignKeys": [
{
"__className__": "serverpod.ForeignKeyDefinition",
"constraintName": "shared_parent_fk_0",
"columns": [
"spaceId"
],
"referenceTable": "offline_sync_spaces",
"referenceTableSchema": "public",
"referenceColumns": [
"id"
],
"onUpdate": 3,
"onDelete": 4
}
],
"indexes": [],
"managed": true
}
},
{
"__className__": "serverpod.DatabaseMigrationAction",
"type": "alterTable",
"alterTable": {
"__className__": "serverpod.TableMigration",
"name": "types",
"schema": "public",
"addColumns": [
{
"__className__": "serverpod.ColumnDefinition",
"name": "parentId",
"fieldName": "parentId",
"columnType": 7,
"isNullable": true,
"dartType": "UuidValue?"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "jsonDocument",
"fieldName": "jsonDocument",
"columnType": 8,
"isNullable": true,
"dartType": "protocol:SyncDocument?"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "jsonbDocument",
"fieldName": "jsonbDocument",
"columnType": 14,
"isNullable": true,
"dartType": "protocol:SyncDocument?"
},
{
"__className__": "serverpod.ColumnDefinition",
"name": "jsonbNumbers",
"fieldName": "jsonbNumbers",
"columnType": 14,
"isNullable": true,
"dartType": "List<int>?"
}
],
"deleteColumns": [],
"modifyColumns": [],
"addIndexes": [],
"deleteIndexes": [],
"addForeignKeys": [
{
"__className__": "serverpod.ForeignKeyDefinition",
"constraintName": "types_fk_1",
"columns": [
"parentId"
],
"referenceTable": "types",
"referenceTableSchema": "public",
"referenceColumns": [
"id"
],
"onUpdate": 3,
"onDelete": 3
}
],
"deleteForeignKeys": [],
"warnings": []
}
}
],
"warnings": [],
"migrationApiVersion": 1
}

View file

@ -13,6 +13,7 @@ part '20260902195734685/migration.dart';
part '20260907165715131/migration.dart';
part '20260907170602693/migration.dart';
part '20260914144112288/migration.dart';
part '20260914165608984/migration.dart';
/// Migration registry for the client-side database.
class MigrationRegistry {
@ -28,6 +29,7 @@ class MigrationRegistry {
_Migration20260907165715131(),
_Migration20260907170602693(),
_Migration20260914144112288(),
_Migration20260914165608984(),
];
/// List of all client-side database migration versions.