migrate method

  1. @override
Future<void> migrate()

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',
    );
  }
}