createTable method

Future<void> createTable()

Creates the jobs table if it doesn't exist.

Implementation

Future<void> createTable() async {
  await _db.query('''
    CREATE TABLE IF NOT EXISTS $_table (
      id TEXT PRIMARY KEY,
      name TEXT NOT NULL,
      queue TEXT NOT NULL DEFAULT 'default',
      status TEXT NOT NULL DEFAULT 'pending',
      attempts INTEGER NOT NULL DEFAULT 0,
      max_retries INTEGER NOT NULL DEFAULT 3,
      payload TEXT,
      last_error TEXT,
      created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
      available_at TIMESTAMPTZ,
      finished_at TIMESTAMPTZ,
      reserved_by TEXT
    )
  ''');
  await _db.query('''
    CREATE INDEX IF NOT EXISTS idx_${_table}_pop
    ON $_table(queue, status, available_at)
  ''');
}