migrate method
Prepare schema.
Implementation
@override
Future<void> migrate() async {
const statement = '''
CREATE TABLE IF NOT EXISTS `$HTTP_JOBS_TABLE_NAME` (
`$HTTP_JOBS_PRIMARY_KEY_COLUMN` INTEGER PRIMARY KEY AUTOINCREMENT,
`$HTTP_JOBS_ATTEMPTS_COLUMN` INTEGER DEFAULT 1,
`$HTTP_JOBS_BODY_COLUMN` TEXT,
`$HTTP_JOBS_ENCODING_COLUMN` TEXT,
`$HTTP_JOBS_HEADERS_COLUMN` TEXT,
`$HTTP_JOBS_LOCKED_COLUMN` INTEGER DEFAULT 0,
`$HTTP_JOBS_REQUEST_METHOD_COLUMN` TEXT,
`$HTTP_JOBS_UPDATED_AT` INTEGER DEFAULT 0,
`$HTTP_JOBS_URL_COLUMN` TEXT,
`$HTTP_JOBS_CREATED_AT_COLUMN` INTEGER DEFAULT 0
);
''';
final db = await getDb();
await db.execute(statement);
final tableInfo = await db.rawQuery('PRAGMA table_info("$HTTP_JOBS_TABLE_NAME");');
final createdAtHasBeenMigrated = tableInfo.any((c) => c['name'] == HTTP_JOBS_CREATED_AT_COLUMN);
if (!createdAtHasBeenMigrated) {
await db.execute(
'ALTER TABLE `$HTTP_JOBS_TABLE_NAME` ADD `$HTTP_JOBS_CREATED_AT_COLUMN` INTEGER DEFAULT 0');
}
}