diff --git a/misc/testing/_run_once/tpg_add_collections_column_2015-08-04.php b/misc/testing/_run_once/tpg_add_collections_column_2015-08-04.php deleted file mode 100644 index 5321fe83c..000000000 --- a/misc/testing/_run_once/tpg_add_collections_column_2015-08-04.php +++ /dev/null @@ -1,44 +0,0 @@ -. - * @author niel - * @copyright 2014 nZEDb - */ -require_once dirname(__FILE__) . '/../../../www/config.php'; -use newznab\db\Settings; -$pdo = new Settings(); -if (!$pdo->getSetting('tablepergroup')) { - exit("Tables per groups is not enabled, quitting!"); -} -// Doing it this way in case there are tables existing not related to the active/backfill list (i.e. I don't have a clue when these tables get deleted so I'm doing any that are there). -$tables1 = $pdo->queryDirect("SELECT SUBSTR(TABLE_NAME, 12) AS suffix FROM information_schema.TABLES WHERE TABLE_SCHEMA = (SELECT DATABASE()) AND TABLE_NAME LIKE 'collections%' ORDER BY TABLE_NAME"); -$tables2 = $pdo->queryDirect("SELECT SUBSTR(TABLE_NAME, 9) AS suffix FROM information_schema.TABLES WHERE TABLE_SCHEMA = (SELECT DATABASE()) AND TABLE_NAME LIKE 'binaries%' ORDER BY TABLE_NAME"); -$query1 = "ALTER TABLE collections%s ADD COLUMN date_initial TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER fromname"; -$query2 = "ALTER TABLE collections%s ADD INDEX ix_collections_date_initial (date_initial)"; -$query3 = "ALTER TABLE binaries%s MODIFY COLUMN partcheck TINYINT(1) NOT NULL DEFAULT '0'"; -if ($tables1 instanceof \Traversable && $tables2 instanceof \Traversable) { - foreach ($tables1 as $table1) { - echo "Updating table collections{$table1['suffix']}" . PHP_EOL; - $pdo->queryExec(sprintf($query1, $table1['suffix']), true); - $pdo->queryExec(sprintf($query2, $table1['suffix']), true); - } - foreach ($tables2 as $table2) { - echo "Updating table binaries{$table2['suffix']}" . PHP_EOL; - $pdo->queryExec(sprintf($query3, $table2['suffix']), true); - } - echo 'All done!' . PHP_EOL; -} \ No newline at end of file diff --git a/resources/db/patches/0166~collections.sql b/resources/db/patches/0166~collections.sql index 3107f5847..cc47c21ee 100644 --- a/resources/db/patches/0166~collections.sql +++ b/resources/db/patches/0166~collections.sql @@ -1,2 +1,20 @@ -ALTER TABLE collections ADD column date_initial DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; +ALTER TABLE collections ADD column added DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP; ALTER TABLE binaries MODIFY partcheck TINYINT(1) UNSIGNED NOT NULL DEFAULT 0; + +DROP PROCEDURE IF EXISTS tpg_change; + +DELIMITER $$ +CREATE PROCEDURE tpg_change(IN databaseName varchar(255)) BEGIN DECLARE done INT DEFAULT false; DECLARE _table CHAR(255); DECLARE _stmt VARCHAR(1000); DECLARE cur1 CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = databaseName AND TABLE_NAME LIKE "collections\_%"; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur1; myloop: loop FETCH cur1 INTO _table; IF done THEN LEAVE myloop; END IF; SET @sql1 := CONCAT("ALTER TABLE ", _table," ADD COLUMN added DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP"); PREPARE _stmt FROM @sql1; EXECUTE _stmt; DROP PREPARE _stmt; END loop; CLOSE cur1; END $$ +DELIMITER ; + +CALL tpg_change( DATABASE() ); + +DROP PROCEDURE tpg_change; + +DELIMITER $$ +CREATE PROCEDURE tpg_change(IN databaseName varchar(255)) BEGIN DECLARE done INT DEFAULT false; DECLARE _table CHAR(255); DECLARE _stmt VARCHAR(1000); DECLARE cur1 CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = databaseName AND TABLE_NAME LIKE "binaries\_%"; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur1; myloop: loop FETCH cur1 INTO _table; IF done THEN LEAVE myloop; END IF; SET @sql1 := CONCAT("ALTER TABLE ", _table," MODIFY partcheck TINYINT(1) UNSIGNED NOT NULL DEFAULT 0"); PREPARE _stmt FROM @sql1; EXECUTE _stmt; DROP PREPARE _stmt; END loop; CLOSE cur1; END $$ +DELIMITER ; + +CALL tpg_change( DATABASE() ); + +DROP PROCEDURE tpg_change; \ No newline at end of file