mirror of
https://github.com/slawkens/myaac.git
synced 2025-11-27 21:56:50 +01:00
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:
@@ -1,31 +1,35 @@
|
||||
<?php
|
||||
/**
|
||||
* @var OTS_DB_MySQL $db
|
||||
*/
|
||||
|
||||
if(!$db->hasTable('z_polls'))
|
||||
$db->query('
|
||||
CREATE TABLE `z_polls` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`question` varchar(255) NOT NULL,
|
||||
`description` varchar(255) NOT NULL,
|
||||
`end` int(11) NOT NULL DEFAULT 0,
|
||||
`start` int(11) NOT NULL DEFAULT 0,
|
||||
`answers` int(11) NOT NULL DEFAULT 0,
|
||||
`votes_all` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
|
||||
');
|
||||
$up = function () use ($db) {
|
||||
if (!$db->hasTable('z_polls')) {
|
||||
$db->exec(file_get_contents(__DIR__ . '/22-z_polls.sql'));
|
||||
}
|
||||
|
||||
if(!$db->hasTable('z_polls_answers'))
|
||||
$db->query('
|
||||
CREATE TABLE `z_polls_answers` (
|
||||
`poll_id` int(11) NOT NULL,
|
||||
`answer_id` int(11) NOT NULL,
|
||||
`answer` varchar(255) NOT NULL,
|
||||
`votes` int(11) NOT NULL DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
|
||||
');
|
||||
if (!$db->hasTable('z_polls_answers')) {
|
||||
$db->exec(file_get_contents(__DIR__ . '/22-z_polls_answers.sql'));
|
||||
}
|
||||
|
||||
if(!$db->hasColumn('accounts', 'vote'))
|
||||
$db->query('ALTER TABLE `accounts` ADD `vote` INT( 11 ) DEFAULT 0 NOT NULL ;');
|
||||
else {
|
||||
$db->query('ALTER TABLE `accounts` MODIFY `vote` INT( 11 ) DEFAULT 0 NOT NULL ;');
|
||||
}
|
||||
if (!$db->hasColumn('accounts', 'vote')) {
|
||||
$db->addColumn('accounts', 'vote', 'int(11) NOT NULL DEFAULT 0');
|
||||
}
|
||||
else {
|
||||
$db->modifyColumn('accounts', 'vote', 'int(11) NOT NULL DEFAULT 0');
|
||||
}
|
||||
};
|
||||
|
||||
$down = function () use ($db) {
|
||||
if ($db->hasTable('z_polls')) {
|
||||
$db->dropTable('z_polls;');
|
||||
}
|
||||
|
||||
if ($db->hasTable('z_polls_answers')) {
|
||||
$db->dropTable('z_polls_answers');
|
||||
}
|
||||
|
||||
if ($db->hasColumn('accounts', 'vote')) {
|
||||
$db->dropColumn('accounts', 'vote');
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user