Database cleaning tool
Z WoWResource Wiki
Obsah |
Úvod
Tento PHP skript slouží jako pomůcka pro kontrolu integrity databáze a její následné pročištění. Kontroluje především vadné vazby mezi tabulkami, které jsou obvykle zachovávány v SQL databázích pomocí tzv. cizích klíčů (foreign keys). Ovšem databázový engine MyISAM, který je často použit pro MySQL databáze, cizí klíče nepodporuje.
Tento skript také umožňuje mazání starých herních účtu starších než zadaný počet měsíců.
V souboru definition.php si lze snadno upravit nebo doplnit další chybějící vazby mezi tabulkami. Samotná struktura tabulek emulátoru MaNGOS se průběžně mění.
Soubor index.php
<?php
// Configuration
$HostName = 'localhost';
$UserName = 'user';
$Password = 'heslo';
$RealmdSchema = 'realmd';
$MangosSchema = 'mangos';
$CharactersSchema = 'characters';
include('definition.php');
class CleaningTool
{
var $Database;
var $Relations;
var $RealmdSchema;
var $MangosSchema;
var $CharactersSchema;
function FlushOutput(&$Output)
{
echo($Output);
$Output = '';
echo(str_repeat(' ', 30000)); // Fill server output buffer
flush();
}
function CheckCorruptedRelations()
{
$Output = '<strong>Check corrupted relations</strong><br/>'.
'<table><tr><th colspan="3">Source</th><th colspan="3">Target</th><th rowspan="2">Total count</th><th rowspan="2">Invalid count</th><th rowspan="2">Percent[%]</th></tr>'.
'<tr><th>Schema</th><th>Table</th><th>Column</th><th>Schema</th><th>Table</th><th>Column</th></tr>';
foreach($this->Relations as $Key)
{
$Query = 'SELECT COUNT(*) FROM '.$Key['SourceSchema'].'.'.$Key['SourceTable'];
$DbResult = $this->Database->query($Query);
$Output .= $this->Database->error;
$DbRow = $DbResult->fetch_row();
$TotalCount = $DbRow[0];
$Query = 'SELECT COUNT(*) FROM '.$Key['SourceSchema'].'.'.$Key['SourceTable'].' WHERE ('.$Key['SourceColumn'].' NOT IN (SELECT '.$Key['TargetColumn'].' FROM '.$Key['TargetSchema'].'.'.$Key['TargetTable'].')) AND ('.$Key['SourceColumn'].' != 0)';
$DbResult = $this->Database->query($Query);
$Output .= $this->Database->error;
$DbRow = $DbResult->fetch_row();
$Count = $DbRow[0];
$Output .= '<tr><td>'.$Key['SourceSchema'].'</td><td>'.$Key['SourceTable'].'</td><td>'.$Key['SourceColumn'].'</td>'.
'<td>'.$Key['TargetSchema'].'</td><td>'.$Key['TargetTable'].'</td><td>'.$Key['TargetColumn'].'</td><td>'.$TotalCount.'</td><td>'.$Count.'</td><td>'.round($Count / $TotalCount * 100, 2).'</td></tr>';
$this->FlushOutput($Output);
}
$Output .= '</table>';
return($Output);
}
function DeleteCorruptedRelations()
{
$Output = '<strong>Delete corrupted relations</strong><br/>'.
'<table><tr><th colspan="3">Source</th><th colspan="3">Target</th><th rowspan="2">Total count</th><th rowspan="2">Deleted count</th><th rowspan="2">Percent[%]</th></tr>'.
'<tr><th>Schema</th><th>Table</th><th>Column</th><th>Schema</th><th>Table</th><th>Column</th></tr>';
foreach($this->Relations as $Key)
{
$Query = 'SELECT COUNT(*) FROM '.$Key['SourceSchema'].'.'.$Key['SourceTable'];
$DbResult = $this->Database->query($Query);
$Output .= $this->Database->error;
$DbRow = $DbResult->fetch_row();
$TotalCount = $DbRow[0];
$Output .= '<tr><td>'.$Key['SourceSchema'].'</td><td>'.$Key['SourceTable'].'</td><td>'.$Key['SourceColumn'].'</td>'.
'<td>'.$Key['TargetSchema'].'</td><td>'.$Key['TargetTable'].'</td><td>'.$Key['TargetColumn'].'</td><td>'.$TotalCount.'</td>';
$Query = 'DELETE FROM '.$Key['SourceSchema'].'.'.$Key['SourceTable'].' WHERE ('.$Key['SourceColumn'].' NOT IN (SELECT '.$Key['TargetColumn'].' FROM '.$Key['TargetSchema'].'.'.$Key['TargetTable'].')) AND ('.$Key['SourceColumn'].' != 0)';
$DbResult = $this->Database->query($Query);
$Output .= $this->Database->error;
$Count = $this->Database->affected_rows;
$Output .= '<td>'.$Count.'</td><td>'.round($Count / $TotalCount * 100, 2).'</td></tr>';
$this->FlushOutput($Output);
}
$Output .= '</table>';
return($Output);
}
function ShowRelations()
{
$Output = '<strong>Relations</strong><br/>'.
'<table><tr><th colspan="3">Source</th><th colspan="3">Target</th><th rowspan="2">Total count</th></tr>'.
'<tr><th>Schema</th><th>Table</th><th>Column</th><th>Schema</th><th>Table</th><th>Column</th></tr>';
foreach($this->Relations as $Key)
{
$Query = 'SELECT COUNT(*) FROM '.$Key['SourceSchema'].'.'.$Key['SourceTable'];
$DbResult = $this->Database->query($Query);
echo($Database->error);
$DbRow = $DbResult->fetch_row();
$TotalCount = $DbRow[0];
$Output .= '<tr><td>'.$Key['SourceSchema'].'</td><td>'.$Key['SourceTable'].'</td><td>'.$Key['SourceColumn'].'</td>'.
'<td>'.$Key['TargetSchema'].'</td><td>'.$Key['TargetTable'].'</td><td>'.$Key['TargetColumn'].'</td><td>'.$TotalCount.'</td></tr>';
$this->FlushOutput($Output);
}
$Output .= '</table>';
return($Output);
}
function DeleteOldAccounts()
{
$this->Database->query('DELETE FROM '.$this->RealmdSchema.'.account WHERE last_login < DATE_SUB(NOW(), INTERVAL '.$_POST['months'].' MONTH)');
echo($this->Database->error);
$Output = 'Deleted '.$this->Database->affected_rows.' accounts. You should go back and check and delete relations now.';
return($Output);
}
function Show()
{
$Output = '<style>table { font-size: small; border-style: solid; border-color: gray; border-width: 1px; border-collapse: collapse; }'.
'td { border-style: solid; border-color: gray; border-width: 1px; padding: 2px 5px 2px 5px; text-align: center;}'.
'th { border-style: solid; border-color: gray; border-width: 1px; padding: 2px 5px 2px 5px;}</style>';
$this->FlushOutput($Output);
if(array_key_exists('Action', $_GET))
{
if($_GET['Action'] == 'CheckRelations') $Output .= $this->CheckCorruptedRelations();
else if($_GET['Action'] == 'DeleteRelations') $Output .= $this->DeleteCorruptedRelations();
else if($_GET['Action'] == 'ShowRelations') $Output .= $this->ShowRelations();
else if($_GET['Action'] == 'DeleteOldAccounts') $Output .= $this->DeleteOldAccounts();
else $Output = 'Unknown action';
} else
{
$Output = '<a href="?Action=ShowRelations">Show relations</a><br/>'.
'<a href="?Action=CheckRelations">Check corrupted relations</a><br/>'.
'<a href="?Action=DeleteRelations">Delete corrupted relations</a><br/>'.
'<br/>';
$Output .= '<form action="?Action=DeleteOldAccounts" method="post">'.
'<fieldset><legend>Delete old accounts</legend>'.
'Accounts older then <input name="months" value="12" /> months<br/>'.
'<input type="submit" value="Delete" />'.
'</fieldset></form>';
}
echo($Output);
}
}
$CleaningTool = new CleaningTool();
$CleaningTool->CharactersSchema = $CharactersSchema;
$CleaningTool->RealmdSchema = $RealmdSchema;
$CleaningTool->MangosSchema = $MangosSchema;
$CleaningTool->Relations = $ForeignKeys;
$CleaningTool->Database = new mysqli($HostName, $UserName, $Password);
$CleaningTool->Show();
?>
Soubor definition.php
<?php
$ForeignKeys = array(
array(
'SourceSchema' => $RealmdSchema,
'SourceTable' => 'uptime',
'SourceColumn' => 'realmid',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'realmlist',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $RealmdSchema,
'SourceTable' => 'realmcharacters',
'SourceColumn' => 'realmid',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'realmlist',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $RealmdSchema,
'SourceTable' => 'realmcharacters',
'SourceColumn' => 'acctid',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'account',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $RealmdSchema,
'SourceTable' => 'account_banned',
'SourceColumn' => 'id',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'account',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'account_data',
'SourceColumn' => 'account',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'account',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'characters',
'SourceColumn' => 'account',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'account',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_action',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_aura',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_declinedname',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_gifts',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_homebind',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_instance',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_inventory',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_inventory',
'SourceColumn' => 'item_template',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'item_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_pet',
'SourceColumn' => 'owner',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_queststatus',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_queststatus',
'SourceColumn' => 'quest',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'quest_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_queststatus_daily',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_reputation',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_social',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_social',
'SourceColumn' => 'friend',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_spell',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_spell_cooldown',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_spell_cooldown',
'SourceColumn' => 'item',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'item_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_ticket',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_tutorial',
'SourceColumn' => 'account',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'account',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_tutorial',
'SourceColumn' => 'realmid',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'realmlist',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'corpse',
'SourceColumn' => 'player',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'groups',
'SourceColumn' => 'leaderGuid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'groups',
'SourceColumn' => 'looterGuid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'group_instance',
'SourceColumn' => 'leaderGuid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'group_instance',
'SourceColumn' => 'instance',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'instance',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'group_member',
'SourceColumn' => 'leaderGuid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'group_member',
'SourceColumn' => 'memberGuid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'guild',
'SourceColumn' => 'leaderGuid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'guild_bank_item',
'SourceColumn' => 'guildid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'guild',
'TargetColumn' => 'guildid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'guild_bank_right',
'SourceColumn' => 'guildid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'guild',
'TargetColumn' => 'guildid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'guild_bank_tab',
'SourceColumn' => 'guildid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'guild',
'TargetColumn' => 'guildid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'guild_eventlog',
'SourceColumn' => 'guildid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'guild',
'TargetColumn' => 'guildid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'guild_member',
'SourceColumn' => 'guildid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'guild',
'TargetColumn' => 'guildid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'guild_member',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'guild_rank',
'SourceColumn' => 'guildid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'guild',
'TargetColumn' => 'guildid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'arena_team',
'SourceColumn' => 'captainguid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'arena_team_member',
'SourceColumn' => 'arenateamid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'arena_team',
'TargetColumn' => 'arenateamid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'arena_team_member',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'arena_team_stats',
'SourceColumn' => 'arenateamid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'arena_team',
'TargetColumn' => 'arenateamid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'auctionhouse',
'SourceColumn' => 'auctioneerguid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'auctionhouse',
'SourceColumn' => 'item_template',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'item_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_achievement',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'character_achievement_progress',
'SourceColumn' => 'guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'item_instance',
'SourceColumn' => 'owner_guid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'mail',
'SourceColumn' => 'sender',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'mail',
'SourceColumn' => 'receiver',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'mail_items',
'SourceColumn' => 'mail_id',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'mail',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'mail_items',
'SourceColumn' => 'receiver',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'mail_items',
'SourceColumn' => 'item_template',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'item_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'petition',
'SourceColumn' => 'ownerguid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'petition_sign',
'SourceColumn' => 'ownerguid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'petition_sign',
'SourceColumn' => 'petitionguid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'petition',
'TargetColumn' => 'petitionguid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'petition_sign',
'SourceColumn' => 'playerguid',
'TargetSchema' => $CharactersSchema,
'TargetTable' => 'characters',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $CharactersSchema,
'SourceTable' => 'petition_sign',
'SourceColumn' => 'player_account',
'TargetSchema' => $RealmdSchema,
'TargetTable' => 'account',
'TargetColumn' => 'id',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'page_text',
'SourceColumn' => 'next_page',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'page_text',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'creature',
'SourceColumn' => 'id',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'creature_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'game_event_creature',
'SourceColumn' => 'event',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'game_event',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'game_event_creature',
'SourceColumn' => 'guid',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'creature',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'game_event_creature_quest',
'SourceColumn' => 'event',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'game_event',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'game_event_creature_quest',
'SourceColumn' => 'quest',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'quest_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'game_event_gameobject',
'SourceColumn' => 'event',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'game_event',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'game_event_gameobject',
'SourceColumn' => 'guid',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'gameobject',
'TargetColumn' => 'guid',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'item_loot_template',
'SourceColumn' => 'item',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'item_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'skinning_loot_template',
'SourceColumn' => 'item',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'item_template',
'TargetColumn' => 'entry',
),
array(
'SourceSchema' => $MangosSchema,
'SourceTable' => 'creature_addon',
'SourceColumn' => 'guid',
'TargetSchema' => $MangosSchema,
'TargetTable' => 'creature',
'TargetColumn' => 'guid',
),
);
?>
