-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreateSkillIndexName.php
54 lines (38 loc) · 1.54 KB
/
createSkillIndexName.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
require_once("esoCommon.php");
require_once("/home/uesp/secrets/esolog.secrets");
if (php_sapi_name() != "cli") die("Can only be run from command line!");
print("Updating all skill tables with indexName field...\n");
$db = new mysqli($uespEsoLogWriteDBHost, $uespEsoLogWriteUser, $uespEsoLogWritePW, $uespEsoLogDatabase);
if ($db->connect_error) exit("Could not connect to mysql database!");
$query = "SHOW TABLES LIKE 'minedSkills%';";
$result = $db->query($query);
if ($result === false) exit("Error: Failed to list all skill tables!\n");
$skillTables = [];
while ($row = $result->fetch_array(MYSQLI_NUM))
{
$skillTables[] = $row[0];
}
$count = count($skillTables);
print("\tFound $count skill tables...\n");
$columnAddCount = 0;
$indexAddCount = 0;
$nameUpdateCount = 0;
foreach ($skillTables as $skillTable)
{
print("\tUpdating table $skillTable...\n");
$query = "ALTER TABLE $skillTable ADD COLUMN indexName TINYTEXT NOT NULL;";
$result = $db->query($query);
if ($result !== false) $columnAddCount++;
$query = "CREATE INDEX indexIndexName ON $skillTable(indexName(32));";
$result = $db->query($query);
if ($result !== false)
$indexAddCount++;
else
print($db->error . "\n");
$query = "UPDATE $skillTable SET indexName=LOWER(REPLACE(name, '\'', ''));";
$result = $db->query($query);
if ($result === false) print("\tFailed to update index names in $skillTable\n");
$nameUpdateCount += $result->affected_rows;
}
print("Added $columnAddCount indexName columns, added $indexAddCount indexes, and updated $nameUpdateCount rows!\n");