1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-18 21:02:41 +01:00
phorge-phorge/resources/sql/patches/liskcounters.php
vrana 6cfc15ad6c Make Lisk counters patch more robust
Summary:
We need to revert this patch and we will need to re-apply it later.
We can't drop the table and delete these rows as we need to run both versions for a temporary period.

Test Plan: Applied it.

Reviewers: epriestley, nh

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D3924
2012-11-08 11:36:50 -08:00

44 lines
1.2 KiB
PHP

<?php
// Switch PhabricatorWorkerActiveTask from autoincrement IDs to counter IDs.
// Set the initial counter ID to be larger than any known task ID.
$active_table = new PhabricatorWorkerActiveTask();
$archive_table = new PhabricatorWorkerArchiveTask();
$conn_w = $active_table->establishConnection('w');
$active_auto = head(queryfx_one(
$conn_w,
'SELECT auto_increment FROM information_schema.tables
WHERE table_name = %s
AND table_schema = DATABASE()',
$active_table->getTableName()));
$active_max = head(queryfx_one(
$conn_w,
'SELECT MAX(id) FROM %T',
$active_table->getTableName()));
$archive_max = head(queryfx_one(
$conn_w,
'SELECT MAX(id) FROM %T',
$archive_table->getTableName()));
$initial_counter = max((int)$active_auto, (int)$active_max, (int)$archive_max);
queryfx(
$conn_w,
'INSERT INTO %T (counterName, counterValue)
VALUES (%s, %d)
ON DUPLICATE KEY UPDATE counterValue = %d',
LiskDAO::COUNTER_TABLE_NAME,
$active_table->getTableName(),
$initial_counter + 1,
$initial_counter + 1);
// Drop AUTO_INCREMENT from the ID column.
queryfx(
$conn_w,
'ALTER TABLE %T CHANGE id id INT UNSIGNED NOT NULL',
$active_table->getTableName());