diff --git a/classes/config.php b/classes/config.php
index 7a37d4a86ad2f7cb53216be2f74a4653b476651f..30b65305ab2bacf3d26214c183b5d0bf228f0ae2 100644
--- a/classes/config.php
+++ b/classes/config.php
@@ -114,6 +114,9 @@ class Config {
 	private $schema_version = null;
 	private $version = [];
 
+	/** @var Db_Migrations $migrations */
+	private $migrations;
+
 	public static function get_instance() : Config {
 		if (self::$instance == null)
 			self::$instance = new self();
@@ -218,18 +221,25 @@ class Config {
 		return $rv;
 	}
 
-	static function get_schema_version(bool $nocache = false) {
-		return self::get_instance()->_schema_version($nocache);
+	static function get_migrations() : Db_Migrations {
+		return self::get_instance()->_get_migrations();
 	}
 
-	function _schema_version(bool $nocache = false) {
-		if (empty($this->schema_version) || $nocache) {
-			$row = Db::pdo()->query("SELECT schema_version FROM ttrss_version")->fetch();
-
-			$this->schema_version = (int) $row["schema_version"];
+	private function _get_migrations() : Db_Migrations {
+		if (empty($this->migrations)) {
+			$this->migrations = new Db_Migrations();
+			$this->migrations->initialize(dirname(__DIR__) . "/sql", "ttrss_version", true);
 		}
 
-		return $this->schema_version;
+		return $this->migrations;
+	}
+
+	static function is_migration_needed() : bool {
+		return self::get_migrations()->is_migration_needed();
+	}
+
+	static function get_schema_version() : int {
+		return self::get_migrations()->get_version();
 	}
 
 	static function cast_to(string $value, int $type_hint) {
diff --git a/classes/db/migrations.php b/classes/db/migrations.php
index f85b4d7c76de1d686cc2ea00fea6994238797a3d..e77904f60323369298e3d3a98c0a243bfac2a0d1 100644
--- a/classes/db/migrations.php
+++ b/classes/db/migrations.php
@@ -10,6 +10,7 @@ class Db_Migrations {
 
 	private $cached_version;
 	private $cached_max_version;
+	private $max_version_override;
 
 	function __construct() {
 		$this->pdo = Db::pdo();
@@ -22,14 +23,17 @@ class Db_Migrations {
 			$base_is_latest);
 	}
 
-	function initialize(string $root_path, string $migrations_table, bool $base_is_latest = true) {
+	function initialize(string $root_path, string $migrations_table, bool $base_is_latest = true, int $max_version_override = 0) {
 		$this->base_path = "$root_path/" . Config::get(Config::DB_TYPE);
 		$this->migrations_path = $this->base_path . "/migrations";
 		$this->migrations_table = $migrations_table;
 		$this->base_is_latest = $base_is_latest;
+		$this->max_version_override =  $max_version_override;
 	}
 
 	private function set_version(int $version) {
+		Debug::log("Updating table {$this->migrations_table} with version ${version}...", Debug::LOG_EXTENDED);
+
 		$sth = $this->pdo->query("SELECT * FROM {$this->migrations_table}");
 
 		if ($res = $sth->fetch()) {
@@ -43,7 +47,7 @@ class Db_Migrations {
 		$this->cached_version = $version;
 	}
 
-	private function get_version() : int {
+	function get_version() : int {
 		if (isset($this->cached_version))
 			return $this->cached_version;
 
@@ -68,10 +72,26 @@ class Db_Migrations {
 
 	private function migrate_to(int $version) {
 		try {
+			if ($version <= $this->get_version()) {
+				Debug::log("Refusing to apply version $version: current version is higher", Debug::LOG_VERBOSE);
+				return false;
+			}
+
+			if ($version == 0)
+				Debug::log("Loading base database schema...", Debug::LOG_VERBOSE);
+			else
+				Debug::log("Starting migration to $version...", Debug::LOG_VERBOSE);
+
 			$this->pdo->beginTransaction();
 
 			foreach ($this->get_lines($version) as $line) {
-				$this->pdo->query($line);
+				Debug::log($line, Debug::LOG_EXTENDED);
+				try {
+					$this->pdo->query($line);
+				} catch (PDOException $e) {
+					Debug::log("Failed on line: $line");
+					throw $e;
+				}
 			}
 
 			if ($version == 0 && $this->base_is_latest)
@@ -80,7 +100,10 @@ class Db_Migrations {
 				$this->set_version($version);
 
 			$this->pdo->commit();
+			Debug::log("Migration finished, current version: " . $this->get_version(), Debug::LOG_VERBOSE);
+
 		} catch (PDOException $e) {
+			Debug::log("Migration failed: " . $e->getMessage(), Debug::LOG_VERBOSE);
 			try {
 				$this->pdo->rollback();
 			} catch (PDOException $ie) {
@@ -90,7 +113,10 @@ class Db_Migrations {
 		}
 	}
 
-	private function get_max_version() : int {
+	function get_max_version() : int {
+		if ($this->max_version_override > 0)
+			return $this->max_version_override;
+
 		if (isset($this->cached_max_version))
 			return $this->cached_max_version;
 
@@ -108,17 +134,32 @@ class Db_Migrations {
 		return $this->cached_max_version;
 	}
 
+	function is_migration_needed() : bool {
+		return $this->get_version() != $this->get_max_version();
+	}
+
 	function migrate() : bool {
 
-		for ($i = $this->get_version() + 1; $i <= $this->get_max_version(); $i++)
+		if ($this->get_version() == -1) {
+			try {
+				$this->migrate_to(0);
+			} catch (PDOException $e) {
+				user_error("Failed to load base schema for {$this->migrations_table}: " . $e->getMessage(), E_USER_WARNING);
+				return false;
+			}
+		}
+
+		for ($i = $this->get_version() + 1; $i <= $this->get_max_version(); $i++) {
 			try {
 				$this->migrate_to($i);
 			} catch (PDOException $e) {
-				user_error("Failed applying migration $i on table {$this->migrations_table}: " . $e->getMessage(), E_USER_WARNING);
+				user_error("Failed to apply migration ${i} for {$this->migrations_table}: " . $e->getMessage(), E_USER_WARNING);
+				return false;
 				//throw $e;
 			}
+		}
 
-		return $this->get_version() == $this->get_max_version();
+		return !$this->is_migration_needed();
 	}
 
 	private function get_lines(int $version) : array {
@@ -134,11 +175,11 @@ class Db_Migrations {
 							});
 
 			return array_filter(explode(";", implode("", $lines)), function ($line) {
-				return strlen(trim($line)) > 0;
+				return strlen(trim($line)) > 0 && !in_array(strtolower($line), ["begin", "commit"]);
 			});
 
 		} else {
-			user_error(E_USER_ERROR, "[migrations] requested schema file ${filename} not found.");
+			user_error("Requested schema file ${filename} not found.", E_USER_ERROR);
 			return [];
 		}
 	}
diff --git a/classes/debug.php b/classes/debug.php
index 3061c6893b18344adffc4f3854218465abf8e75d..a0dcac35b5c916d8105e73320e6b61d1edc3d410 100644
--- a/classes/debug.php
+++ b/classes/debug.php
@@ -1,5 +1,10 @@
 <?php
 class Debug {
+	const LOG_DISABLED = -1;
+    const LOG_NORMAL = 0;
+    const LOG_VERBOSE = 1;
+    const LOG_EXTENDED = 2;
+
 	public static $LOG_DISABLED = -1;
     public static $LOG_NORMAL = 0;
     public static $LOG_VERBOSE = 1;
diff --git a/schema/versions/mysql/10.sql b/sql/mysql/migrations/10.sql
similarity index 100%
rename from schema/versions/mysql/10.sql
rename to sql/mysql/migrations/10.sql
diff --git a/schema/versions/mysql/100.sql b/sql/mysql/migrations/100.sql
similarity index 100%
rename from schema/versions/mysql/100.sql
rename to sql/mysql/migrations/100.sql
diff --git a/schema/versions/mysql/101.sql b/sql/mysql/migrations/101.sql
similarity index 100%
rename from schema/versions/mysql/101.sql
rename to sql/mysql/migrations/101.sql
diff --git a/schema/versions/mysql/102.sql b/sql/mysql/migrations/102.sql
similarity index 100%
rename from schema/versions/mysql/102.sql
rename to sql/mysql/migrations/102.sql
diff --git a/schema/versions/mysql/103.sql b/sql/mysql/migrations/103.sql
similarity index 100%
rename from schema/versions/mysql/103.sql
rename to sql/mysql/migrations/103.sql
diff --git a/schema/versions/mysql/104.sql b/sql/mysql/migrations/104.sql
similarity index 100%
rename from schema/versions/mysql/104.sql
rename to sql/mysql/migrations/104.sql
diff --git a/schema/versions/mysql/105.sql b/sql/mysql/migrations/105.sql
similarity index 100%
rename from schema/versions/mysql/105.sql
rename to sql/mysql/migrations/105.sql
diff --git a/schema/versions/mysql/106.sql b/sql/mysql/migrations/106.sql
similarity index 100%
rename from schema/versions/mysql/106.sql
rename to sql/mysql/migrations/106.sql
diff --git a/schema/versions/mysql/107.sql b/sql/mysql/migrations/107.sql
similarity index 100%
rename from schema/versions/mysql/107.sql
rename to sql/mysql/migrations/107.sql
diff --git a/schema/versions/mysql/108.sql b/sql/mysql/migrations/108.sql
similarity index 100%
rename from schema/versions/mysql/108.sql
rename to sql/mysql/migrations/108.sql
diff --git a/schema/versions/mysql/109.sql b/sql/mysql/migrations/109.sql
similarity index 100%
rename from schema/versions/mysql/109.sql
rename to sql/mysql/migrations/109.sql
diff --git a/schema/versions/mysql/11.sql b/sql/mysql/migrations/11.sql
similarity index 100%
rename from schema/versions/mysql/11.sql
rename to sql/mysql/migrations/11.sql
diff --git a/schema/versions/mysql/110.sql b/sql/mysql/migrations/110.sql
similarity index 100%
rename from schema/versions/mysql/110.sql
rename to sql/mysql/migrations/110.sql
diff --git a/schema/versions/mysql/111.sql b/sql/mysql/migrations/111.sql
similarity index 100%
rename from schema/versions/mysql/111.sql
rename to sql/mysql/migrations/111.sql
diff --git a/schema/versions/mysql/112.sql b/sql/mysql/migrations/112.sql
similarity index 100%
rename from schema/versions/mysql/112.sql
rename to sql/mysql/migrations/112.sql
diff --git a/schema/versions/mysql/113.sql b/sql/mysql/migrations/113.sql
similarity index 100%
rename from schema/versions/mysql/113.sql
rename to sql/mysql/migrations/113.sql
diff --git a/schema/versions/mysql/114.sql b/sql/mysql/migrations/114.sql
similarity index 100%
rename from schema/versions/mysql/114.sql
rename to sql/mysql/migrations/114.sql
diff --git a/schema/versions/mysql/115.sql b/sql/mysql/migrations/115.sql
similarity index 100%
rename from schema/versions/mysql/115.sql
rename to sql/mysql/migrations/115.sql
diff --git a/schema/versions/mysql/116.sql b/sql/mysql/migrations/116.sql
similarity index 100%
rename from schema/versions/mysql/116.sql
rename to sql/mysql/migrations/116.sql
diff --git a/schema/versions/mysql/117.sql b/sql/mysql/migrations/117.sql
similarity index 100%
rename from schema/versions/mysql/117.sql
rename to sql/mysql/migrations/117.sql
diff --git a/schema/versions/mysql/118.sql b/sql/mysql/migrations/118.sql
similarity index 100%
rename from schema/versions/mysql/118.sql
rename to sql/mysql/migrations/118.sql
diff --git a/schema/versions/mysql/119.sql b/sql/mysql/migrations/119.sql
similarity index 100%
rename from schema/versions/mysql/119.sql
rename to sql/mysql/migrations/119.sql
diff --git a/schema/versions/mysql/12.sql b/sql/mysql/migrations/12.sql
similarity index 100%
rename from schema/versions/mysql/12.sql
rename to sql/mysql/migrations/12.sql
diff --git a/schema/versions/mysql/120.sql b/sql/mysql/migrations/120.sql
similarity index 100%
rename from schema/versions/mysql/120.sql
rename to sql/mysql/migrations/120.sql
diff --git a/schema/versions/mysql/121.sql b/sql/mysql/migrations/121.sql
similarity index 100%
rename from schema/versions/mysql/121.sql
rename to sql/mysql/migrations/121.sql
diff --git a/schema/versions/mysql/122.sql b/sql/mysql/migrations/122.sql
similarity index 100%
rename from schema/versions/mysql/122.sql
rename to sql/mysql/migrations/122.sql
diff --git a/schema/versions/mysql/123.sql b/sql/mysql/migrations/123.sql
similarity index 100%
rename from schema/versions/mysql/123.sql
rename to sql/mysql/migrations/123.sql
diff --git a/schema/versions/mysql/124.sql b/sql/mysql/migrations/124.sql
similarity index 100%
rename from schema/versions/mysql/124.sql
rename to sql/mysql/migrations/124.sql
diff --git a/schema/versions/mysql/125.sql b/sql/mysql/migrations/125.sql
similarity index 100%
rename from schema/versions/mysql/125.sql
rename to sql/mysql/migrations/125.sql
diff --git a/schema/versions/mysql/126.sql b/sql/mysql/migrations/126.sql
similarity index 100%
rename from schema/versions/mysql/126.sql
rename to sql/mysql/migrations/126.sql
diff --git a/schema/versions/mysql/127.sql b/sql/mysql/migrations/127.sql
similarity index 100%
rename from schema/versions/mysql/127.sql
rename to sql/mysql/migrations/127.sql
diff --git a/schema/versions/mysql/128.sql b/sql/mysql/migrations/128.sql
similarity index 100%
rename from schema/versions/mysql/128.sql
rename to sql/mysql/migrations/128.sql
diff --git a/schema/versions/mysql/129.sql b/sql/mysql/migrations/129.sql
similarity index 100%
rename from schema/versions/mysql/129.sql
rename to sql/mysql/migrations/129.sql
diff --git a/schema/versions/mysql/13.sql b/sql/mysql/migrations/13.sql
similarity index 100%
rename from schema/versions/mysql/13.sql
rename to sql/mysql/migrations/13.sql
diff --git a/schema/versions/mysql/130.sql b/sql/mysql/migrations/130.sql
similarity index 100%
rename from schema/versions/mysql/130.sql
rename to sql/mysql/migrations/130.sql
diff --git a/schema/versions/mysql/131.sql b/sql/mysql/migrations/131.sql
similarity index 100%
rename from schema/versions/mysql/131.sql
rename to sql/mysql/migrations/131.sql
diff --git a/schema/versions/mysql/132.sql b/sql/mysql/migrations/132.sql
similarity index 100%
rename from schema/versions/mysql/132.sql
rename to sql/mysql/migrations/132.sql
diff --git a/schema/versions/mysql/133.sql b/sql/mysql/migrations/133.sql
similarity index 100%
rename from schema/versions/mysql/133.sql
rename to sql/mysql/migrations/133.sql
diff --git a/schema/versions/mysql/134.sql b/sql/mysql/migrations/134.sql
similarity index 100%
rename from schema/versions/mysql/134.sql
rename to sql/mysql/migrations/134.sql
diff --git a/schema/versions/mysql/135.sql b/sql/mysql/migrations/135.sql
similarity index 100%
rename from schema/versions/mysql/135.sql
rename to sql/mysql/migrations/135.sql
diff --git a/schema/versions/mysql/136.sql b/sql/mysql/migrations/136.sql
similarity index 100%
rename from schema/versions/mysql/136.sql
rename to sql/mysql/migrations/136.sql
diff --git a/schema/versions/mysql/137.sql b/sql/mysql/migrations/137.sql
similarity index 100%
rename from schema/versions/mysql/137.sql
rename to sql/mysql/migrations/137.sql
diff --git a/schema/versions/mysql/138.sql b/sql/mysql/migrations/138.sql
similarity index 100%
rename from schema/versions/mysql/138.sql
rename to sql/mysql/migrations/138.sql
diff --git a/schema/versions/mysql/139.sql b/sql/mysql/migrations/139.sql
similarity index 100%
rename from schema/versions/mysql/139.sql
rename to sql/mysql/migrations/139.sql
diff --git a/schema/versions/mysql/14.sql b/sql/mysql/migrations/14.sql
similarity index 100%
rename from schema/versions/mysql/14.sql
rename to sql/mysql/migrations/14.sql
diff --git a/schema/versions/mysql/140.sql b/sql/mysql/migrations/140.sql
similarity index 100%
rename from schema/versions/mysql/140.sql
rename to sql/mysql/migrations/140.sql
diff --git a/schema/versions/mysql/141.sql b/sql/mysql/migrations/141.sql
similarity index 100%
rename from schema/versions/mysql/141.sql
rename to sql/mysql/migrations/141.sql
diff --git a/schema/versions/mysql/142.sql b/sql/mysql/migrations/142.sql
similarity index 100%
rename from schema/versions/mysql/142.sql
rename to sql/mysql/migrations/142.sql
diff --git a/schema/versions/mysql/15.sql b/sql/mysql/migrations/15.sql
similarity index 100%
rename from schema/versions/mysql/15.sql
rename to sql/mysql/migrations/15.sql
diff --git a/schema/versions/mysql/16.sql b/sql/mysql/migrations/16.sql
similarity index 100%
rename from schema/versions/mysql/16.sql
rename to sql/mysql/migrations/16.sql
diff --git a/schema/versions/mysql/17.sql b/sql/mysql/migrations/17.sql
similarity index 100%
rename from schema/versions/mysql/17.sql
rename to sql/mysql/migrations/17.sql
diff --git a/schema/versions/mysql/18.sql b/sql/mysql/migrations/18.sql
similarity index 100%
rename from schema/versions/mysql/18.sql
rename to sql/mysql/migrations/18.sql
diff --git a/schema/versions/mysql/19.sql b/sql/mysql/migrations/19.sql
similarity index 100%
rename from schema/versions/mysql/19.sql
rename to sql/mysql/migrations/19.sql
diff --git a/schema/versions/mysql/20.sql b/sql/mysql/migrations/20.sql
similarity index 100%
rename from schema/versions/mysql/20.sql
rename to sql/mysql/migrations/20.sql
diff --git a/schema/versions/mysql/21.sql b/sql/mysql/migrations/21.sql
similarity index 100%
rename from schema/versions/mysql/21.sql
rename to sql/mysql/migrations/21.sql
diff --git a/schema/versions/mysql/22.sql b/sql/mysql/migrations/22.sql
similarity index 100%
rename from schema/versions/mysql/22.sql
rename to sql/mysql/migrations/22.sql
diff --git a/schema/versions/mysql/23.sql b/sql/mysql/migrations/23.sql
similarity index 100%
rename from schema/versions/mysql/23.sql
rename to sql/mysql/migrations/23.sql
diff --git a/schema/versions/mysql/24.sql b/sql/mysql/migrations/24.sql
similarity index 100%
rename from schema/versions/mysql/24.sql
rename to sql/mysql/migrations/24.sql
diff --git a/schema/versions/mysql/25.sql b/sql/mysql/migrations/25.sql
similarity index 100%
rename from schema/versions/mysql/25.sql
rename to sql/mysql/migrations/25.sql
diff --git a/schema/versions/mysql/26.sql b/sql/mysql/migrations/26.sql
similarity index 100%
rename from schema/versions/mysql/26.sql
rename to sql/mysql/migrations/26.sql
diff --git a/schema/versions/mysql/27.sql b/sql/mysql/migrations/27.sql
similarity index 100%
rename from schema/versions/mysql/27.sql
rename to sql/mysql/migrations/27.sql
diff --git a/schema/versions/mysql/28.sql b/sql/mysql/migrations/28.sql
similarity index 100%
rename from schema/versions/mysql/28.sql
rename to sql/mysql/migrations/28.sql
diff --git a/schema/versions/mysql/29.sql b/sql/mysql/migrations/29.sql
similarity index 100%
rename from schema/versions/mysql/29.sql
rename to sql/mysql/migrations/29.sql
diff --git a/schema/versions/mysql/3.sql b/sql/mysql/migrations/3.sql
similarity index 100%
rename from schema/versions/mysql/3.sql
rename to sql/mysql/migrations/3.sql
diff --git a/schema/versions/mysql/30.sql b/sql/mysql/migrations/30.sql
similarity index 100%
rename from schema/versions/mysql/30.sql
rename to sql/mysql/migrations/30.sql
diff --git a/schema/versions/mysql/31.sql b/sql/mysql/migrations/31.sql
similarity index 100%
rename from schema/versions/mysql/31.sql
rename to sql/mysql/migrations/31.sql
diff --git a/schema/versions/mysql/32.sql b/sql/mysql/migrations/32.sql
similarity index 100%
rename from schema/versions/mysql/32.sql
rename to sql/mysql/migrations/32.sql
diff --git a/schema/versions/mysql/33.sql b/sql/mysql/migrations/33.sql
similarity index 100%
rename from schema/versions/mysql/33.sql
rename to sql/mysql/migrations/33.sql
diff --git a/schema/versions/mysql/34.sql b/sql/mysql/migrations/34.sql
similarity index 100%
rename from schema/versions/mysql/34.sql
rename to sql/mysql/migrations/34.sql
diff --git a/schema/versions/mysql/35.sql b/sql/mysql/migrations/35.sql
similarity index 100%
rename from schema/versions/mysql/35.sql
rename to sql/mysql/migrations/35.sql
diff --git a/schema/versions/mysql/36.sql b/sql/mysql/migrations/36.sql
similarity index 100%
rename from schema/versions/mysql/36.sql
rename to sql/mysql/migrations/36.sql
diff --git a/schema/versions/mysql/37.sql b/sql/mysql/migrations/37.sql
similarity index 100%
rename from schema/versions/mysql/37.sql
rename to sql/mysql/migrations/37.sql
diff --git a/schema/versions/mysql/38.sql b/sql/mysql/migrations/38.sql
similarity index 100%
rename from schema/versions/mysql/38.sql
rename to sql/mysql/migrations/38.sql
diff --git a/schema/versions/mysql/39.sql b/sql/mysql/migrations/39.sql
similarity index 100%
rename from schema/versions/mysql/39.sql
rename to sql/mysql/migrations/39.sql
diff --git a/schema/versions/mysql/4.sql b/sql/mysql/migrations/4.sql
similarity index 100%
rename from schema/versions/mysql/4.sql
rename to sql/mysql/migrations/4.sql
diff --git a/schema/versions/mysql/40.sql b/sql/mysql/migrations/40.sql
similarity index 100%
rename from schema/versions/mysql/40.sql
rename to sql/mysql/migrations/40.sql
diff --git a/schema/versions/mysql/41.sql b/sql/mysql/migrations/41.sql
similarity index 100%
rename from schema/versions/mysql/41.sql
rename to sql/mysql/migrations/41.sql
diff --git a/schema/versions/mysql/42.sql b/sql/mysql/migrations/42.sql
similarity index 100%
rename from schema/versions/mysql/42.sql
rename to sql/mysql/migrations/42.sql
diff --git a/schema/versions/mysql/43.sql b/sql/mysql/migrations/43.sql
similarity index 100%
rename from schema/versions/mysql/43.sql
rename to sql/mysql/migrations/43.sql
diff --git a/schema/versions/mysql/44.sql b/sql/mysql/migrations/44.sql
similarity index 100%
rename from schema/versions/mysql/44.sql
rename to sql/mysql/migrations/44.sql
diff --git a/schema/versions/mysql/45.sql b/sql/mysql/migrations/45.sql
similarity index 100%
rename from schema/versions/mysql/45.sql
rename to sql/mysql/migrations/45.sql
diff --git a/schema/versions/mysql/46.sql b/sql/mysql/migrations/46.sql
similarity index 100%
rename from schema/versions/mysql/46.sql
rename to sql/mysql/migrations/46.sql
diff --git a/schema/versions/mysql/47.sql b/sql/mysql/migrations/47.sql
similarity index 100%
rename from schema/versions/mysql/47.sql
rename to sql/mysql/migrations/47.sql
diff --git a/schema/versions/mysql/48.sql b/sql/mysql/migrations/48.sql
similarity index 100%
rename from schema/versions/mysql/48.sql
rename to sql/mysql/migrations/48.sql
diff --git a/schema/versions/mysql/49.sql b/sql/mysql/migrations/49.sql
similarity index 100%
rename from schema/versions/mysql/49.sql
rename to sql/mysql/migrations/49.sql
diff --git a/schema/versions/mysql/5.sql b/sql/mysql/migrations/5.sql
similarity index 100%
rename from schema/versions/mysql/5.sql
rename to sql/mysql/migrations/5.sql
diff --git a/schema/versions/mysql/50.sql b/sql/mysql/migrations/50.sql
similarity index 100%
rename from schema/versions/mysql/50.sql
rename to sql/mysql/migrations/50.sql
diff --git a/schema/versions/mysql/51.sql b/sql/mysql/migrations/51.sql
similarity index 100%
rename from schema/versions/mysql/51.sql
rename to sql/mysql/migrations/51.sql
diff --git a/schema/versions/mysql/52.sql b/sql/mysql/migrations/52.sql
similarity index 100%
rename from schema/versions/mysql/52.sql
rename to sql/mysql/migrations/52.sql
diff --git a/schema/versions/mysql/53.sql b/sql/mysql/migrations/53.sql
similarity index 100%
rename from schema/versions/mysql/53.sql
rename to sql/mysql/migrations/53.sql
diff --git a/schema/versions/mysql/54.sql b/sql/mysql/migrations/54.sql
similarity index 100%
rename from schema/versions/mysql/54.sql
rename to sql/mysql/migrations/54.sql
diff --git a/schema/versions/mysql/55.sql b/sql/mysql/migrations/55.sql
similarity index 100%
rename from schema/versions/mysql/55.sql
rename to sql/mysql/migrations/55.sql
diff --git a/schema/versions/mysql/56.sql b/sql/mysql/migrations/56.sql
similarity index 100%
rename from schema/versions/mysql/56.sql
rename to sql/mysql/migrations/56.sql
diff --git a/schema/versions/mysql/57.sql b/sql/mysql/migrations/57.sql
similarity index 100%
rename from schema/versions/mysql/57.sql
rename to sql/mysql/migrations/57.sql
diff --git a/schema/versions/mysql/58.sql b/sql/mysql/migrations/58.sql
similarity index 100%
rename from schema/versions/mysql/58.sql
rename to sql/mysql/migrations/58.sql
diff --git a/schema/versions/mysql/59.sql b/sql/mysql/migrations/59.sql
similarity index 100%
rename from schema/versions/mysql/59.sql
rename to sql/mysql/migrations/59.sql
diff --git a/schema/versions/mysql/6.sql b/sql/mysql/migrations/6.sql
similarity index 100%
rename from schema/versions/mysql/6.sql
rename to sql/mysql/migrations/6.sql
diff --git a/schema/versions/mysql/60.sql b/sql/mysql/migrations/60.sql
similarity index 100%
rename from schema/versions/mysql/60.sql
rename to sql/mysql/migrations/60.sql
diff --git a/schema/versions/mysql/61.sql b/sql/mysql/migrations/61.sql
similarity index 100%
rename from schema/versions/mysql/61.sql
rename to sql/mysql/migrations/61.sql
diff --git a/schema/versions/mysql/62.sql b/sql/mysql/migrations/62.sql
similarity index 100%
rename from schema/versions/mysql/62.sql
rename to sql/mysql/migrations/62.sql
diff --git a/schema/versions/mysql/63.sql b/sql/mysql/migrations/63.sql
similarity index 100%
rename from schema/versions/mysql/63.sql
rename to sql/mysql/migrations/63.sql
diff --git a/schema/versions/mysql/64.sql b/sql/mysql/migrations/64.sql
similarity index 100%
rename from schema/versions/mysql/64.sql
rename to sql/mysql/migrations/64.sql
diff --git a/schema/versions/mysql/65.sql b/sql/mysql/migrations/65.sql
similarity index 100%
rename from schema/versions/mysql/65.sql
rename to sql/mysql/migrations/65.sql
diff --git a/schema/versions/mysql/66.sql b/sql/mysql/migrations/66.sql
similarity index 100%
rename from schema/versions/mysql/66.sql
rename to sql/mysql/migrations/66.sql
diff --git a/schema/versions/mysql/67.sql b/sql/mysql/migrations/67.sql
similarity index 100%
rename from schema/versions/mysql/67.sql
rename to sql/mysql/migrations/67.sql
diff --git a/schema/versions/mysql/68.sql b/sql/mysql/migrations/68.sql
similarity index 100%
rename from schema/versions/mysql/68.sql
rename to sql/mysql/migrations/68.sql
diff --git a/schema/versions/mysql/69.sql b/sql/mysql/migrations/69.sql
similarity index 100%
rename from schema/versions/mysql/69.sql
rename to sql/mysql/migrations/69.sql
diff --git a/schema/versions/mysql/7.sql b/sql/mysql/migrations/7.sql
similarity index 100%
rename from schema/versions/mysql/7.sql
rename to sql/mysql/migrations/7.sql
diff --git a/schema/versions/mysql/70.sql b/sql/mysql/migrations/70.sql
similarity index 100%
rename from schema/versions/mysql/70.sql
rename to sql/mysql/migrations/70.sql
diff --git a/schema/versions/mysql/71.sql b/sql/mysql/migrations/71.sql
similarity index 100%
rename from schema/versions/mysql/71.sql
rename to sql/mysql/migrations/71.sql
diff --git a/schema/versions/mysql/72.sql b/sql/mysql/migrations/72.sql
similarity index 100%
rename from schema/versions/mysql/72.sql
rename to sql/mysql/migrations/72.sql
diff --git a/schema/versions/mysql/73.sql b/sql/mysql/migrations/73.sql
similarity index 100%
rename from schema/versions/mysql/73.sql
rename to sql/mysql/migrations/73.sql
diff --git a/schema/versions/mysql/74.sql b/sql/mysql/migrations/74.sql
similarity index 100%
rename from schema/versions/mysql/74.sql
rename to sql/mysql/migrations/74.sql
diff --git a/schema/versions/mysql/75.sql b/sql/mysql/migrations/75.sql
similarity index 100%
rename from schema/versions/mysql/75.sql
rename to sql/mysql/migrations/75.sql
diff --git a/schema/versions/mysql/76.sql b/sql/mysql/migrations/76.sql
similarity index 100%
rename from schema/versions/mysql/76.sql
rename to sql/mysql/migrations/76.sql
diff --git a/schema/versions/mysql/77.sql b/sql/mysql/migrations/77.sql
similarity index 100%
rename from schema/versions/mysql/77.sql
rename to sql/mysql/migrations/77.sql
diff --git a/schema/versions/mysql/78.sql b/sql/mysql/migrations/78.sql
similarity index 100%
rename from schema/versions/mysql/78.sql
rename to sql/mysql/migrations/78.sql
diff --git a/schema/versions/mysql/79.sql b/sql/mysql/migrations/79.sql
similarity index 100%
rename from schema/versions/mysql/79.sql
rename to sql/mysql/migrations/79.sql
diff --git a/schema/versions/mysql/8.sql b/sql/mysql/migrations/8.sql
similarity index 100%
rename from schema/versions/mysql/8.sql
rename to sql/mysql/migrations/8.sql
diff --git a/schema/versions/mysql/80.sql b/sql/mysql/migrations/80.sql
similarity index 100%
rename from schema/versions/mysql/80.sql
rename to sql/mysql/migrations/80.sql
diff --git a/schema/versions/mysql/81.sql b/sql/mysql/migrations/81.sql
similarity index 100%
rename from schema/versions/mysql/81.sql
rename to sql/mysql/migrations/81.sql
diff --git a/schema/versions/mysql/82.sql b/sql/mysql/migrations/82.sql
similarity index 100%
rename from schema/versions/mysql/82.sql
rename to sql/mysql/migrations/82.sql
diff --git a/schema/versions/mysql/83.sql b/sql/mysql/migrations/83.sql
similarity index 100%
rename from schema/versions/mysql/83.sql
rename to sql/mysql/migrations/83.sql
diff --git a/schema/versions/mysql/84.sql b/sql/mysql/migrations/84.sql
similarity index 100%
rename from schema/versions/mysql/84.sql
rename to sql/mysql/migrations/84.sql
diff --git a/schema/versions/mysql/85.sql b/sql/mysql/migrations/85.sql
similarity index 100%
rename from schema/versions/mysql/85.sql
rename to sql/mysql/migrations/85.sql
diff --git a/schema/versions/mysql/86.sql b/sql/mysql/migrations/86.sql
similarity index 100%
rename from schema/versions/mysql/86.sql
rename to sql/mysql/migrations/86.sql
diff --git a/schema/versions/mysql/87.sql b/sql/mysql/migrations/87.sql
similarity index 100%
rename from schema/versions/mysql/87.sql
rename to sql/mysql/migrations/87.sql
diff --git a/schema/versions/mysql/88.sql b/sql/mysql/migrations/88.sql
similarity index 100%
rename from schema/versions/mysql/88.sql
rename to sql/mysql/migrations/88.sql
diff --git a/schema/versions/mysql/89.sql b/sql/mysql/migrations/89.sql
similarity index 100%
rename from schema/versions/mysql/89.sql
rename to sql/mysql/migrations/89.sql
diff --git a/schema/versions/mysql/9.sql b/sql/mysql/migrations/9.sql
similarity index 100%
rename from schema/versions/mysql/9.sql
rename to sql/mysql/migrations/9.sql
diff --git a/schema/versions/mysql/90.sql b/sql/mysql/migrations/90.sql
similarity index 100%
rename from schema/versions/mysql/90.sql
rename to sql/mysql/migrations/90.sql
diff --git a/schema/versions/mysql/91.sql b/sql/mysql/migrations/91.sql
similarity index 100%
rename from schema/versions/mysql/91.sql
rename to sql/mysql/migrations/91.sql
diff --git a/schema/versions/mysql/92.sql b/sql/mysql/migrations/92.sql
similarity index 100%
rename from schema/versions/mysql/92.sql
rename to sql/mysql/migrations/92.sql
diff --git a/schema/versions/mysql/93.sql b/sql/mysql/migrations/93.sql
similarity index 100%
rename from schema/versions/mysql/93.sql
rename to sql/mysql/migrations/93.sql
diff --git a/schema/versions/mysql/94.sql b/sql/mysql/migrations/94.sql
similarity index 100%
rename from schema/versions/mysql/94.sql
rename to sql/mysql/migrations/94.sql
diff --git a/schema/versions/mysql/95.sql b/sql/mysql/migrations/95.sql
similarity index 100%
rename from schema/versions/mysql/95.sql
rename to sql/mysql/migrations/95.sql
diff --git a/schema/versions/mysql/96.sql b/sql/mysql/migrations/96.sql
similarity index 100%
rename from schema/versions/mysql/96.sql
rename to sql/mysql/migrations/96.sql
diff --git a/schema/versions/mysql/97.sql b/sql/mysql/migrations/97.sql
similarity index 100%
rename from schema/versions/mysql/97.sql
rename to sql/mysql/migrations/97.sql
diff --git a/schema/versions/mysql/98.sql b/sql/mysql/migrations/98.sql
similarity index 100%
rename from schema/versions/mysql/98.sql
rename to sql/mysql/migrations/98.sql
diff --git a/schema/versions/mysql/99.sql b/sql/mysql/migrations/99.sql
similarity index 100%
rename from schema/versions/mysql/99.sql
rename to sql/mysql/migrations/99.sql
diff --git a/schema/ttrss_schema_mysql.sql b/sql/mysql/schema.sql
similarity index 100%
rename from schema/ttrss_schema_mysql.sql
rename to sql/mysql/schema.sql
diff --git a/schema/versions/pgsql/10.sql b/sql/pgsql/migrations/10.sql
similarity index 100%
rename from schema/versions/pgsql/10.sql
rename to sql/pgsql/migrations/10.sql
diff --git a/schema/versions/pgsql/100.sql b/sql/pgsql/migrations/100.sql
similarity index 100%
rename from schema/versions/pgsql/100.sql
rename to sql/pgsql/migrations/100.sql
diff --git a/schema/versions/pgsql/101.sql b/sql/pgsql/migrations/101.sql
similarity index 100%
rename from schema/versions/pgsql/101.sql
rename to sql/pgsql/migrations/101.sql
diff --git a/schema/versions/pgsql/102.sql b/sql/pgsql/migrations/102.sql
similarity index 100%
rename from schema/versions/pgsql/102.sql
rename to sql/pgsql/migrations/102.sql
diff --git a/schema/versions/pgsql/103.sql b/sql/pgsql/migrations/103.sql
similarity index 100%
rename from schema/versions/pgsql/103.sql
rename to sql/pgsql/migrations/103.sql
diff --git a/schema/versions/pgsql/104.sql b/sql/pgsql/migrations/104.sql
similarity index 100%
rename from schema/versions/pgsql/104.sql
rename to sql/pgsql/migrations/104.sql
diff --git a/schema/versions/pgsql/105.sql b/sql/pgsql/migrations/105.sql
similarity index 100%
rename from schema/versions/pgsql/105.sql
rename to sql/pgsql/migrations/105.sql
diff --git a/schema/versions/pgsql/106.sql b/sql/pgsql/migrations/106.sql
similarity index 100%
rename from schema/versions/pgsql/106.sql
rename to sql/pgsql/migrations/106.sql
diff --git a/schema/versions/pgsql/107.sql b/sql/pgsql/migrations/107.sql
similarity index 100%
rename from schema/versions/pgsql/107.sql
rename to sql/pgsql/migrations/107.sql
diff --git a/schema/versions/pgsql/108.sql b/sql/pgsql/migrations/108.sql
similarity index 100%
rename from schema/versions/pgsql/108.sql
rename to sql/pgsql/migrations/108.sql
diff --git a/schema/versions/pgsql/109.sql b/sql/pgsql/migrations/109.sql
similarity index 100%
rename from schema/versions/pgsql/109.sql
rename to sql/pgsql/migrations/109.sql
diff --git a/schema/versions/pgsql/11.sql b/sql/pgsql/migrations/11.sql
similarity index 100%
rename from schema/versions/pgsql/11.sql
rename to sql/pgsql/migrations/11.sql
diff --git a/schema/versions/pgsql/110.sql b/sql/pgsql/migrations/110.sql
similarity index 100%
rename from schema/versions/pgsql/110.sql
rename to sql/pgsql/migrations/110.sql
diff --git a/schema/versions/pgsql/111.sql b/sql/pgsql/migrations/111.sql
similarity index 100%
rename from schema/versions/pgsql/111.sql
rename to sql/pgsql/migrations/111.sql
diff --git a/schema/versions/pgsql/112.sql b/sql/pgsql/migrations/112.sql
similarity index 100%
rename from schema/versions/pgsql/112.sql
rename to sql/pgsql/migrations/112.sql
diff --git a/schema/versions/pgsql/113.sql b/sql/pgsql/migrations/113.sql
similarity index 100%
rename from schema/versions/pgsql/113.sql
rename to sql/pgsql/migrations/113.sql
diff --git a/schema/versions/pgsql/114.sql b/sql/pgsql/migrations/114.sql
similarity index 100%
rename from schema/versions/pgsql/114.sql
rename to sql/pgsql/migrations/114.sql
diff --git a/schema/versions/pgsql/115.sql b/sql/pgsql/migrations/115.sql
similarity index 100%
rename from schema/versions/pgsql/115.sql
rename to sql/pgsql/migrations/115.sql
diff --git a/schema/versions/pgsql/116.sql b/sql/pgsql/migrations/116.sql
similarity index 100%
rename from schema/versions/pgsql/116.sql
rename to sql/pgsql/migrations/116.sql
diff --git a/schema/versions/pgsql/117.sql b/sql/pgsql/migrations/117.sql
similarity index 100%
rename from schema/versions/pgsql/117.sql
rename to sql/pgsql/migrations/117.sql
diff --git a/schema/versions/pgsql/118.sql b/sql/pgsql/migrations/118.sql
similarity index 100%
rename from schema/versions/pgsql/118.sql
rename to sql/pgsql/migrations/118.sql
diff --git a/schema/versions/pgsql/119.sql b/sql/pgsql/migrations/119.sql
similarity index 100%
rename from schema/versions/pgsql/119.sql
rename to sql/pgsql/migrations/119.sql
diff --git a/schema/versions/pgsql/12.sql b/sql/pgsql/migrations/12.sql
similarity index 100%
rename from schema/versions/pgsql/12.sql
rename to sql/pgsql/migrations/12.sql
diff --git a/schema/versions/pgsql/120.sql b/sql/pgsql/migrations/120.sql
similarity index 100%
rename from schema/versions/pgsql/120.sql
rename to sql/pgsql/migrations/120.sql
diff --git a/schema/versions/pgsql/121.sql b/sql/pgsql/migrations/121.sql
similarity index 100%
rename from schema/versions/pgsql/121.sql
rename to sql/pgsql/migrations/121.sql
diff --git a/schema/versions/pgsql/122.sql b/sql/pgsql/migrations/122.sql
similarity index 100%
rename from schema/versions/pgsql/122.sql
rename to sql/pgsql/migrations/122.sql
diff --git a/schema/versions/pgsql/123.sql b/sql/pgsql/migrations/123.sql
similarity index 100%
rename from schema/versions/pgsql/123.sql
rename to sql/pgsql/migrations/123.sql
diff --git a/schema/versions/pgsql/124.sql b/sql/pgsql/migrations/124.sql
similarity index 100%
rename from schema/versions/pgsql/124.sql
rename to sql/pgsql/migrations/124.sql
diff --git a/schema/versions/pgsql/125.sql b/sql/pgsql/migrations/125.sql
similarity index 100%
rename from schema/versions/pgsql/125.sql
rename to sql/pgsql/migrations/125.sql
diff --git a/schema/versions/pgsql/126.sql b/sql/pgsql/migrations/126.sql
similarity index 100%
rename from schema/versions/pgsql/126.sql
rename to sql/pgsql/migrations/126.sql
diff --git a/schema/versions/pgsql/127.sql b/sql/pgsql/migrations/127.sql
similarity index 100%
rename from schema/versions/pgsql/127.sql
rename to sql/pgsql/migrations/127.sql
diff --git a/schema/versions/pgsql/128.sql b/sql/pgsql/migrations/128.sql
similarity index 100%
rename from schema/versions/pgsql/128.sql
rename to sql/pgsql/migrations/128.sql
diff --git a/schema/versions/pgsql/129.sql b/sql/pgsql/migrations/129.sql
similarity index 100%
rename from schema/versions/pgsql/129.sql
rename to sql/pgsql/migrations/129.sql
diff --git a/schema/versions/pgsql/13.sql b/sql/pgsql/migrations/13.sql
similarity index 100%
rename from schema/versions/pgsql/13.sql
rename to sql/pgsql/migrations/13.sql
diff --git a/schema/versions/pgsql/130.sql b/sql/pgsql/migrations/130.sql
similarity index 100%
rename from schema/versions/pgsql/130.sql
rename to sql/pgsql/migrations/130.sql
diff --git a/schema/versions/pgsql/131.sql b/sql/pgsql/migrations/131.sql
similarity index 100%
rename from schema/versions/pgsql/131.sql
rename to sql/pgsql/migrations/131.sql
diff --git a/schema/versions/pgsql/132.sql b/sql/pgsql/migrations/132.sql
similarity index 100%
rename from schema/versions/pgsql/132.sql
rename to sql/pgsql/migrations/132.sql
diff --git a/schema/versions/pgsql/133.sql b/sql/pgsql/migrations/133.sql
similarity index 100%
rename from schema/versions/pgsql/133.sql
rename to sql/pgsql/migrations/133.sql
diff --git a/schema/versions/pgsql/134.sql b/sql/pgsql/migrations/134.sql
similarity index 100%
rename from schema/versions/pgsql/134.sql
rename to sql/pgsql/migrations/134.sql
diff --git a/schema/versions/pgsql/135.sql b/sql/pgsql/migrations/135.sql
similarity index 100%
rename from schema/versions/pgsql/135.sql
rename to sql/pgsql/migrations/135.sql
diff --git a/schema/versions/pgsql/136.sql b/sql/pgsql/migrations/136.sql
similarity index 100%
rename from schema/versions/pgsql/136.sql
rename to sql/pgsql/migrations/136.sql
diff --git a/schema/versions/pgsql/137.sql b/sql/pgsql/migrations/137.sql
similarity index 100%
rename from schema/versions/pgsql/137.sql
rename to sql/pgsql/migrations/137.sql
diff --git a/schema/versions/pgsql/138.sql b/sql/pgsql/migrations/138.sql
similarity index 100%
rename from schema/versions/pgsql/138.sql
rename to sql/pgsql/migrations/138.sql
diff --git a/schema/versions/pgsql/139.sql b/sql/pgsql/migrations/139.sql
similarity index 100%
rename from schema/versions/pgsql/139.sql
rename to sql/pgsql/migrations/139.sql
diff --git a/schema/versions/pgsql/14.sql b/sql/pgsql/migrations/14.sql
similarity index 100%
rename from schema/versions/pgsql/14.sql
rename to sql/pgsql/migrations/14.sql
diff --git a/schema/versions/pgsql/140.sql b/sql/pgsql/migrations/140.sql
similarity index 100%
rename from schema/versions/pgsql/140.sql
rename to sql/pgsql/migrations/140.sql
diff --git a/schema/versions/pgsql/141.sql b/sql/pgsql/migrations/141.sql
similarity index 100%
rename from schema/versions/pgsql/141.sql
rename to sql/pgsql/migrations/141.sql
diff --git a/schema/versions/pgsql/142.sql b/sql/pgsql/migrations/142.sql
similarity index 100%
rename from schema/versions/pgsql/142.sql
rename to sql/pgsql/migrations/142.sql
diff --git a/schema/versions/pgsql/15.sql b/sql/pgsql/migrations/15.sql
similarity index 100%
rename from schema/versions/pgsql/15.sql
rename to sql/pgsql/migrations/15.sql
diff --git a/schema/versions/pgsql/16.sql b/sql/pgsql/migrations/16.sql
similarity index 100%
rename from schema/versions/pgsql/16.sql
rename to sql/pgsql/migrations/16.sql
diff --git a/schema/versions/pgsql/17.sql b/sql/pgsql/migrations/17.sql
similarity index 100%
rename from schema/versions/pgsql/17.sql
rename to sql/pgsql/migrations/17.sql
diff --git a/schema/versions/pgsql/18.sql b/sql/pgsql/migrations/18.sql
similarity index 100%
rename from schema/versions/pgsql/18.sql
rename to sql/pgsql/migrations/18.sql
diff --git a/schema/versions/pgsql/19.sql b/sql/pgsql/migrations/19.sql
similarity index 100%
rename from schema/versions/pgsql/19.sql
rename to sql/pgsql/migrations/19.sql
diff --git a/schema/versions/pgsql/20.sql b/sql/pgsql/migrations/20.sql
similarity index 100%
rename from schema/versions/pgsql/20.sql
rename to sql/pgsql/migrations/20.sql
diff --git a/schema/versions/pgsql/21.sql b/sql/pgsql/migrations/21.sql
similarity index 100%
rename from schema/versions/pgsql/21.sql
rename to sql/pgsql/migrations/21.sql
diff --git a/schema/versions/pgsql/22.sql b/sql/pgsql/migrations/22.sql
similarity index 100%
rename from schema/versions/pgsql/22.sql
rename to sql/pgsql/migrations/22.sql
diff --git a/schema/versions/pgsql/23.sql b/sql/pgsql/migrations/23.sql
similarity index 100%
rename from schema/versions/pgsql/23.sql
rename to sql/pgsql/migrations/23.sql
diff --git a/schema/versions/pgsql/24.sql b/sql/pgsql/migrations/24.sql
similarity index 100%
rename from schema/versions/pgsql/24.sql
rename to sql/pgsql/migrations/24.sql
diff --git a/schema/versions/pgsql/25.sql b/sql/pgsql/migrations/25.sql
similarity index 100%
rename from schema/versions/pgsql/25.sql
rename to sql/pgsql/migrations/25.sql
diff --git a/schema/versions/pgsql/26.sql b/sql/pgsql/migrations/26.sql
similarity index 100%
rename from schema/versions/pgsql/26.sql
rename to sql/pgsql/migrations/26.sql
diff --git a/schema/versions/pgsql/27.sql b/sql/pgsql/migrations/27.sql
similarity index 100%
rename from schema/versions/pgsql/27.sql
rename to sql/pgsql/migrations/27.sql
diff --git a/schema/versions/pgsql/28.sql b/sql/pgsql/migrations/28.sql
similarity index 100%
rename from schema/versions/pgsql/28.sql
rename to sql/pgsql/migrations/28.sql
diff --git a/schema/versions/pgsql/29.sql b/sql/pgsql/migrations/29.sql
similarity index 100%
rename from schema/versions/pgsql/29.sql
rename to sql/pgsql/migrations/29.sql
diff --git a/schema/versions/pgsql/3.sql b/sql/pgsql/migrations/3.sql
similarity index 100%
rename from schema/versions/pgsql/3.sql
rename to sql/pgsql/migrations/3.sql
diff --git a/schema/versions/pgsql/30.sql b/sql/pgsql/migrations/30.sql
similarity index 100%
rename from schema/versions/pgsql/30.sql
rename to sql/pgsql/migrations/30.sql
diff --git a/schema/versions/pgsql/31.sql b/sql/pgsql/migrations/31.sql
similarity index 100%
rename from schema/versions/pgsql/31.sql
rename to sql/pgsql/migrations/31.sql
diff --git a/schema/versions/pgsql/32.sql b/sql/pgsql/migrations/32.sql
similarity index 100%
rename from schema/versions/pgsql/32.sql
rename to sql/pgsql/migrations/32.sql
diff --git a/schema/versions/pgsql/33.sql b/sql/pgsql/migrations/33.sql
similarity index 100%
rename from schema/versions/pgsql/33.sql
rename to sql/pgsql/migrations/33.sql
diff --git a/schema/versions/pgsql/34.sql b/sql/pgsql/migrations/34.sql
similarity index 100%
rename from schema/versions/pgsql/34.sql
rename to sql/pgsql/migrations/34.sql
diff --git a/schema/versions/pgsql/35.sql b/sql/pgsql/migrations/35.sql
similarity index 100%
rename from schema/versions/pgsql/35.sql
rename to sql/pgsql/migrations/35.sql
diff --git a/schema/versions/pgsql/36.sql b/sql/pgsql/migrations/36.sql
similarity index 100%
rename from schema/versions/pgsql/36.sql
rename to sql/pgsql/migrations/36.sql
diff --git a/schema/versions/pgsql/37.sql b/sql/pgsql/migrations/37.sql
similarity index 100%
rename from schema/versions/pgsql/37.sql
rename to sql/pgsql/migrations/37.sql
diff --git a/schema/versions/pgsql/38.sql b/sql/pgsql/migrations/38.sql
similarity index 100%
rename from schema/versions/pgsql/38.sql
rename to sql/pgsql/migrations/38.sql
diff --git a/schema/versions/pgsql/39.sql b/sql/pgsql/migrations/39.sql
similarity index 100%
rename from schema/versions/pgsql/39.sql
rename to sql/pgsql/migrations/39.sql
diff --git a/schema/versions/pgsql/4.sql b/sql/pgsql/migrations/4.sql
similarity index 100%
rename from schema/versions/pgsql/4.sql
rename to sql/pgsql/migrations/4.sql
diff --git a/schema/versions/pgsql/40.sql b/sql/pgsql/migrations/40.sql
similarity index 100%
rename from schema/versions/pgsql/40.sql
rename to sql/pgsql/migrations/40.sql
diff --git a/schema/versions/pgsql/41.sql b/sql/pgsql/migrations/41.sql
similarity index 100%
rename from schema/versions/pgsql/41.sql
rename to sql/pgsql/migrations/41.sql
diff --git a/schema/versions/pgsql/42.sql b/sql/pgsql/migrations/42.sql
similarity index 100%
rename from schema/versions/pgsql/42.sql
rename to sql/pgsql/migrations/42.sql
diff --git a/schema/versions/pgsql/43.sql b/sql/pgsql/migrations/43.sql
similarity index 100%
rename from schema/versions/pgsql/43.sql
rename to sql/pgsql/migrations/43.sql
diff --git a/schema/versions/pgsql/44.sql b/sql/pgsql/migrations/44.sql
similarity index 100%
rename from schema/versions/pgsql/44.sql
rename to sql/pgsql/migrations/44.sql
diff --git a/schema/versions/pgsql/45.sql b/sql/pgsql/migrations/45.sql
similarity index 100%
rename from schema/versions/pgsql/45.sql
rename to sql/pgsql/migrations/45.sql
diff --git a/schema/versions/pgsql/46.sql b/sql/pgsql/migrations/46.sql
similarity index 100%
rename from schema/versions/pgsql/46.sql
rename to sql/pgsql/migrations/46.sql
diff --git a/schema/versions/pgsql/47.sql b/sql/pgsql/migrations/47.sql
similarity index 100%
rename from schema/versions/pgsql/47.sql
rename to sql/pgsql/migrations/47.sql
diff --git a/schema/versions/pgsql/48.sql b/sql/pgsql/migrations/48.sql
similarity index 100%
rename from schema/versions/pgsql/48.sql
rename to sql/pgsql/migrations/48.sql
diff --git a/schema/versions/pgsql/49.sql b/sql/pgsql/migrations/49.sql
similarity index 100%
rename from schema/versions/pgsql/49.sql
rename to sql/pgsql/migrations/49.sql
diff --git a/schema/versions/pgsql/5.sql b/sql/pgsql/migrations/5.sql
similarity index 100%
rename from schema/versions/pgsql/5.sql
rename to sql/pgsql/migrations/5.sql
diff --git a/schema/versions/pgsql/50.sql b/sql/pgsql/migrations/50.sql
similarity index 100%
rename from schema/versions/pgsql/50.sql
rename to sql/pgsql/migrations/50.sql
diff --git a/schema/versions/pgsql/51.sql b/sql/pgsql/migrations/51.sql
similarity index 100%
rename from schema/versions/pgsql/51.sql
rename to sql/pgsql/migrations/51.sql
diff --git a/schema/versions/pgsql/52.sql b/sql/pgsql/migrations/52.sql
similarity index 100%
rename from schema/versions/pgsql/52.sql
rename to sql/pgsql/migrations/52.sql
diff --git a/schema/versions/pgsql/53.sql b/sql/pgsql/migrations/53.sql
similarity index 100%
rename from schema/versions/pgsql/53.sql
rename to sql/pgsql/migrations/53.sql
diff --git a/schema/versions/pgsql/54.sql b/sql/pgsql/migrations/54.sql
similarity index 100%
rename from schema/versions/pgsql/54.sql
rename to sql/pgsql/migrations/54.sql
diff --git a/schema/versions/pgsql/55.sql b/sql/pgsql/migrations/55.sql
similarity index 100%
rename from schema/versions/pgsql/55.sql
rename to sql/pgsql/migrations/55.sql
diff --git a/schema/versions/pgsql/56.sql b/sql/pgsql/migrations/56.sql
similarity index 100%
rename from schema/versions/pgsql/56.sql
rename to sql/pgsql/migrations/56.sql
diff --git a/schema/versions/pgsql/57.sql b/sql/pgsql/migrations/57.sql
similarity index 100%
rename from schema/versions/pgsql/57.sql
rename to sql/pgsql/migrations/57.sql
diff --git a/schema/versions/pgsql/58.sql b/sql/pgsql/migrations/58.sql
similarity index 100%
rename from schema/versions/pgsql/58.sql
rename to sql/pgsql/migrations/58.sql
diff --git a/schema/versions/pgsql/59.sql b/sql/pgsql/migrations/59.sql
similarity index 100%
rename from schema/versions/pgsql/59.sql
rename to sql/pgsql/migrations/59.sql
diff --git a/schema/versions/pgsql/6.sql b/sql/pgsql/migrations/6.sql
similarity index 100%
rename from schema/versions/pgsql/6.sql
rename to sql/pgsql/migrations/6.sql
diff --git a/schema/versions/pgsql/60.sql b/sql/pgsql/migrations/60.sql
similarity index 100%
rename from schema/versions/pgsql/60.sql
rename to sql/pgsql/migrations/60.sql
diff --git a/schema/versions/pgsql/61.sql b/sql/pgsql/migrations/61.sql
similarity index 100%
rename from schema/versions/pgsql/61.sql
rename to sql/pgsql/migrations/61.sql
diff --git a/schema/versions/pgsql/62.sql b/sql/pgsql/migrations/62.sql
similarity index 100%
rename from schema/versions/pgsql/62.sql
rename to sql/pgsql/migrations/62.sql
diff --git a/schema/versions/pgsql/63.sql b/sql/pgsql/migrations/63.sql
similarity index 100%
rename from schema/versions/pgsql/63.sql
rename to sql/pgsql/migrations/63.sql
diff --git a/schema/versions/pgsql/64.sql b/sql/pgsql/migrations/64.sql
similarity index 100%
rename from schema/versions/pgsql/64.sql
rename to sql/pgsql/migrations/64.sql
diff --git a/schema/versions/pgsql/65.sql b/sql/pgsql/migrations/65.sql
similarity index 100%
rename from schema/versions/pgsql/65.sql
rename to sql/pgsql/migrations/65.sql
diff --git a/schema/versions/pgsql/66.sql b/sql/pgsql/migrations/66.sql
similarity index 100%
rename from schema/versions/pgsql/66.sql
rename to sql/pgsql/migrations/66.sql
diff --git a/schema/versions/pgsql/67.sql b/sql/pgsql/migrations/67.sql
similarity index 100%
rename from schema/versions/pgsql/67.sql
rename to sql/pgsql/migrations/67.sql
diff --git a/schema/versions/pgsql/68.sql b/sql/pgsql/migrations/68.sql
similarity index 100%
rename from schema/versions/pgsql/68.sql
rename to sql/pgsql/migrations/68.sql
diff --git a/schema/versions/pgsql/69.sql b/sql/pgsql/migrations/69.sql
similarity index 100%
rename from schema/versions/pgsql/69.sql
rename to sql/pgsql/migrations/69.sql
diff --git a/schema/versions/pgsql/7.sql b/sql/pgsql/migrations/7.sql
similarity index 100%
rename from schema/versions/pgsql/7.sql
rename to sql/pgsql/migrations/7.sql
diff --git a/schema/versions/pgsql/70.sql b/sql/pgsql/migrations/70.sql
similarity index 100%
rename from schema/versions/pgsql/70.sql
rename to sql/pgsql/migrations/70.sql
diff --git a/schema/versions/pgsql/71.sql b/sql/pgsql/migrations/71.sql
similarity index 100%
rename from schema/versions/pgsql/71.sql
rename to sql/pgsql/migrations/71.sql
diff --git a/schema/versions/pgsql/72.sql b/sql/pgsql/migrations/72.sql
similarity index 100%
rename from schema/versions/pgsql/72.sql
rename to sql/pgsql/migrations/72.sql
diff --git a/schema/versions/pgsql/73.sql b/sql/pgsql/migrations/73.sql
similarity index 100%
rename from schema/versions/pgsql/73.sql
rename to sql/pgsql/migrations/73.sql
diff --git a/schema/versions/pgsql/74.sql b/sql/pgsql/migrations/74.sql
similarity index 100%
rename from schema/versions/pgsql/74.sql
rename to sql/pgsql/migrations/74.sql
diff --git a/schema/versions/pgsql/75.sql b/sql/pgsql/migrations/75.sql
similarity index 100%
rename from schema/versions/pgsql/75.sql
rename to sql/pgsql/migrations/75.sql
diff --git a/schema/versions/pgsql/76.sql b/sql/pgsql/migrations/76.sql
similarity index 100%
rename from schema/versions/pgsql/76.sql
rename to sql/pgsql/migrations/76.sql
diff --git a/schema/versions/pgsql/77.sql b/sql/pgsql/migrations/77.sql
similarity index 100%
rename from schema/versions/pgsql/77.sql
rename to sql/pgsql/migrations/77.sql
diff --git a/schema/versions/pgsql/78.sql b/sql/pgsql/migrations/78.sql
similarity index 100%
rename from schema/versions/pgsql/78.sql
rename to sql/pgsql/migrations/78.sql
diff --git a/schema/versions/pgsql/79.sql b/sql/pgsql/migrations/79.sql
similarity index 100%
rename from schema/versions/pgsql/79.sql
rename to sql/pgsql/migrations/79.sql
diff --git a/schema/versions/pgsql/8.sql b/sql/pgsql/migrations/8.sql
similarity index 100%
rename from schema/versions/pgsql/8.sql
rename to sql/pgsql/migrations/8.sql
diff --git a/schema/versions/pgsql/80.sql b/sql/pgsql/migrations/80.sql
similarity index 100%
rename from schema/versions/pgsql/80.sql
rename to sql/pgsql/migrations/80.sql
diff --git a/schema/versions/pgsql/81.sql b/sql/pgsql/migrations/81.sql
similarity index 100%
rename from schema/versions/pgsql/81.sql
rename to sql/pgsql/migrations/81.sql
diff --git a/schema/versions/pgsql/82.sql b/sql/pgsql/migrations/82.sql
similarity index 100%
rename from schema/versions/pgsql/82.sql
rename to sql/pgsql/migrations/82.sql
diff --git a/schema/versions/pgsql/83.sql b/sql/pgsql/migrations/83.sql
similarity index 100%
rename from schema/versions/pgsql/83.sql
rename to sql/pgsql/migrations/83.sql
diff --git a/schema/versions/pgsql/84.sql b/sql/pgsql/migrations/84.sql
similarity index 100%
rename from schema/versions/pgsql/84.sql
rename to sql/pgsql/migrations/84.sql
diff --git a/schema/versions/pgsql/85.sql b/sql/pgsql/migrations/85.sql
similarity index 100%
rename from schema/versions/pgsql/85.sql
rename to sql/pgsql/migrations/85.sql
diff --git a/schema/versions/pgsql/86.sql b/sql/pgsql/migrations/86.sql
similarity index 100%
rename from schema/versions/pgsql/86.sql
rename to sql/pgsql/migrations/86.sql
diff --git a/schema/versions/pgsql/87.sql b/sql/pgsql/migrations/87.sql
similarity index 100%
rename from schema/versions/pgsql/87.sql
rename to sql/pgsql/migrations/87.sql
diff --git a/schema/versions/pgsql/88.sql b/sql/pgsql/migrations/88.sql
similarity index 100%
rename from schema/versions/pgsql/88.sql
rename to sql/pgsql/migrations/88.sql
diff --git a/schema/versions/pgsql/89.sql b/sql/pgsql/migrations/89.sql
similarity index 100%
rename from schema/versions/pgsql/89.sql
rename to sql/pgsql/migrations/89.sql
diff --git a/schema/versions/pgsql/9.sql b/sql/pgsql/migrations/9.sql
similarity index 100%
rename from schema/versions/pgsql/9.sql
rename to sql/pgsql/migrations/9.sql
diff --git a/schema/versions/pgsql/90.sql b/sql/pgsql/migrations/90.sql
similarity index 100%
rename from schema/versions/pgsql/90.sql
rename to sql/pgsql/migrations/90.sql
diff --git a/schema/versions/pgsql/91.sql b/sql/pgsql/migrations/91.sql
similarity index 100%
rename from schema/versions/pgsql/91.sql
rename to sql/pgsql/migrations/91.sql
diff --git a/schema/versions/pgsql/92.sql b/sql/pgsql/migrations/92.sql
similarity index 100%
rename from schema/versions/pgsql/92.sql
rename to sql/pgsql/migrations/92.sql
diff --git a/schema/versions/pgsql/93.sql b/sql/pgsql/migrations/93.sql
similarity index 100%
rename from schema/versions/pgsql/93.sql
rename to sql/pgsql/migrations/93.sql
diff --git a/schema/versions/pgsql/94.sql b/sql/pgsql/migrations/94.sql
similarity index 100%
rename from schema/versions/pgsql/94.sql
rename to sql/pgsql/migrations/94.sql
diff --git a/schema/versions/pgsql/95.sql b/sql/pgsql/migrations/95.sql
similarity index 100%
rename from schema/versions/pgsql/95.sql
rename to sql/pgsql/migrations/95.sql
diff --git a/schema/versions/pgsql/96.sql b/sql/pgsql/migrations/96.sql
similarity index 100%
rename from schema/versions/pgsql/96.sql
rename to sql/pgsql/migrations/96.sql
diff --git a/schema/versions/pgsql/97.sql b/sql/pgsql/migrations/97.sql
similarity index 100%
rename from schema/versions/pgsql/97.sql
rename to sql/pgsql/migrations/97.sql
diff --git a/schema/versions/pgsql/98.sql b/sql/pgsql/migrations/98.sql
similarity index 100%
rename from schema/versions/pgsql/98.sql
rename to sql/pgsql/migrations/98.sql
diff --git a/schema/versions/pgsql/99.sql b/sql/pgsql/migrations/99.sql
similarity index 100%
rename from schema/versions/pgsql/99.sql
rename to sql/pgsql/migrations/99.sql
diff --git a/schema/ttrss_schema_pgsql.sql b/sql/pgsql/schema.sql
similarity index 100%
rename from schema/ttrss_schema_pgsql.sql
rename to sql/pgsql/schema.sql
diff --git a/update.php b/update.php
index 94a6bb5cad814f285405d970a56db6aee836b881..d19c5f8239d3d8da34fab923fd13246d6fbfeb4c 100755
--- a/update.php
+++ b/update.php
@@ -145,10 +145,8 @@
 		require_once "errorhandler.php";
 	}
 
-	if (!isset($options['update-schema'])) {
-		if (Db_Updater::is_update_required()) {
-			die("Schema version is wrong, please upgrade the database (--update-schema).\n");
-		}
+	if (!isset($options['update-schema']) && Config::is_migration_needed()) {
+		die("Schema version is wrong, please upgrade the database (--update-schema).\n");
 	}
 
 	Debug::set_enabled(true);
@@ -372,7 +370,32 @@
 	}
 
 	if (isset($options["update-schema"])) {
-		Debug::log("Checking for updates (" . Config::get(Config::DB_TYPE) . ")...");
+		if (Config::is_migration_needed()) {
+
+			if ($options["update-schema"] != "force-yes") {
+				Debug::log("Type 'yes' to continue.");
+
+				if (read_stdin() != 'yes')
+					exit;
+			} else {
+				Debug::log("Proceeding to update without confirmation...");
+			}
+
+			if (!isset($options["log-level"])) {
+				Debug::set_loglevel(Debug::$LOG_VERBOSE);
+			}
+
+			$migrations = Config::get_migrations();
+
+			Debug::log("Migrating schema to version " . $migrations->get_max_version());
+
+			$migrations->migrate();
+
+		} else {
+			Debug::log("Database schema is already at latest version.");
+		}
+
+		/*Debug::log("Checking for updates (" . Config::get(Config::DB_TYPE) . ")...");
 
 		$updater = new Db_Updater(Db::pdo(), Config::get(Config::DB_TYPE));
 
@@ -412,7 +435,7 @@
 			Debug::log("All done.");
 		} else {
 			Debug::log("Database schema is already at latest version.");
-		}
+		} */
 
 	}