# sequra/3.1.0/src/Repositories/Migrations/class-migration.php

seQura, version 3.1.0. 54 lines.

- Page: https://pluginprobe.com/plugins/sequra/3.1.0/code/src/Repositories/Migrations/class-migration.php
- Raw: https://pluginprobe.com/plugins/sequra/3.1.0/raw/src/Repositories/Migrations/class-migration.php
- Modified: 2024-10-29T15:19:22+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/sequra/3.1.0/code/src/Repositories/Migrations/class-migration.php#L10-L20`.

```php
<?php
/**
 * Database migration interface
 *
 * @package    SeQura/WC
 * @subpackage SeQura/WC/Repositories/Migrations
 */

namespace SeQura\WC\Repositories\Migrations;

use SeQura\WC\Core\Extension\Infrastructure\Configuration\Configuration;

/**
 * Database migration interface
 */
abstract class Migration {

	/**
	 * Database session object.
	 *
	 * @var \wpdb
	 */
	protected $db;

	/**
	 * Configuration service.
	 *
	 * @var Configuration
	 */
	protected $configuration;

	/**
	 * Constructor
	 *
	 * @param \wpdb $wpdb Database instance.
	 */
	public function __construct( \wpdb $wpdb, Configuration $configuration ) {
		$this->db            = $wpdb;
		$this->configuration = $configuration;
	}

	/**
	 * Get the plugin version when the changes were made.
	 */
	abstract public function get_version(): string;

	/**
	 * Run the migration.
	 * 
	 * @throws \Throwable
	 */
	abstract public function run(): void;
}

```
