final todosTable = TableSchema(
name: 'todos',
columns: [
TableColumn.primaryKey(
name: 'id',
type: ColumnType.integer,
isAutoIncrement: true,
),
TableColumn.text(
name: 'title',
isNullable: false,
),
TableColumn.boolean(
name: 'completed',
defaultValue: false,
),
TableColumn.datetime(
name: 'created_at',
isNullable: false,
),
TableColumn.foreignKey(
name: 'user_id',
type: ColumnType.integer,
references: TableReference(
table: 'users',
column: 'id',
onDelete: 'CASCADE',
),
isNullable: false,
),
],
indexes: [
Index(
name: 'idx_todos_title',
columns: ['title'],
),
],
);
final db = PocketSync.initialize(
options: PocketSyncOptions(
projectId: 'your-project-id',
authToken: 'your-auth-token',
serverUrl: 'https://api.pocketsync.dev',
),
databaseOptions: DatabaseOptions(
version: 1,
dbPath: 'path/to/database.db',
schema: DatabaseSchema(
tables: [todosTable],
),
onCreate: (db, version) {
// Create tables
},
onUpgrade: (db, oldVersion, newVersion) {
// Handle database upgrade
},
onDowngrade: (db, oldVersion, newVersion) {
// Handle database downgrade
},
onOpen: (db) {
// Handle database open
},
),
);