value array of versions => methods. * * @var array */ protected $upgrades = [ 20220927 => 'add_is_locked_column', ]; /** * Setup the database schema * * @return void */ protected function set_schema() { $this->schema = " id bigint(20) unsigned NOT NULL AUTO_INCREMENT, url varchar(2000) NOT NULL default '', status varchar(255) NOT NULL default '', modified timestamp NOT NULL default '0000-00-00 00:00:00', last_accessed timestamp NOT NULL default '0000-00-00 00:00:00', is_locked tinyint(1) NOT NULL default 0, PRIMARY KEY (id), KEY url (url(191)), KEY modified (modified), KEY last_accessed (last_accessed)"; } /** * Trigger recreation of cache table if not exist. * * @return void */ public function maybe_trigger_recreate_table() { if ( $this->exists() ) { return; } delete_option( $this->db_version_key ); } /** * Add is_locked column. * * @return bool */ public function add_is_locked_column() { $hash_column_exists = $this->column_exists( 'is_locked' ); $created = true; if ( ! $hash_column_exists ) { $created &= $this->get_db()->query( "ALTER TABLE {$this->table_name} ADD COLUMN is_locked tinyint(1) NOT NULL default 0 AFTER last_accessed" ); } return $this->is_success( $created ); } }