Feature migrations up/down (#270)

* Migrations up down

* Add forum model

* Syntactic sugar for db structure changes

* Refactor migrations with $up & $down

* Fix migrations upgrade and downgrade

+ Add option to disable auto migrate

* Add migrate:to command

Usage: php aac migrate:to x (x - database version)

* Show error when mail is not enabled

* Fixes regarding to init.php

* Add migrate command to manually upgrade db, incase auto migrate is disabled

* Fixed rest of the migrations

* Limit max version of database

* Don't allow minus number

* Option to clear specified plugin settings by name

* Version is required

* Fix PHPStan errors

* Unset $up after migration, to prevent executing same migration twice

* Add database version to output

* This is not needed

* Update 5.php

* Set database_auto_migrate on install

* Set blank & color only if current db version supports it

* Fix duplicate function declaration
This commit is contained in:
Slawomir Boczek
2024-11-22 15:29:23 +01:00
committed by GitHub
parent 79636280a7
commit 3f6ff3a332
72 changed files with 1268 additions and 396 deletions

View File

@@ -1,14 +1,18 @@
<?php
/**
* @var OTS_DB_MySQL $db
*/
// add settings table
if(!$db->hasTable(TABLE_PREFIX . 'settings')) {
$db->exec("CREATE TABLE `" . TABLE_PREFIX . "settings`
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL DEFAULT '',
`key` VARCHAR(255) NOT NULL DEFAULT '',
`value` TEXT NOT NULL,
PRIMARY KEY (`id`),
KEY `key` (`key`)
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;");
}
$up = function () use ($db) {
// add settings table
if (!$db->hasTable(TABLE_PREFIX . 'settings')) {
$db->exec(file_get_contents(__DIR__ . '/36-settings.sql'));
}
};
$down = function () {
// will break the aac
//if ($db->hasTable(TABLE_PREFIX . 'settings')) {
// $db->dropTable(TABLE_PREFIX . 'settings');
//}
};