Как восстановить структуру базы данных MySQL

VarrkaN

Создатель
Регистрация
10 Окт 2008
Сообщения
15
Реакции
0
В общем проблема такая: есть скрипт без дампа базы данных, соотвественно неработоспособный, как наиболее удобно узнать названия таблиц и названия и типы их полей, не перелопачивая весь скрипт? Если это конечно возможно, заранее извиняюсь если написал не в тот раздел...
 
Боюсь, что никак, брал такую работу на фрилансе - помог только вдумчивый анализ кода.
 
Тяжёлый вопрос. Может быть найти поиском все места где используется вызов Mysql функций (mysql_query и т.п.). Т.е. написать парсер для этих задач. Парсер вернёт все вызовы обращений к бд. А затем по найденным местам создать таблицы. Затем запустить скрипт, и он будет выдавать ошибки, что нет таких-то таблиц. И досоздать таблицы уже.
 
согласен с предыдущим оратором (#2), можно только частично облегчить себе труд:
заменить в скрипте все вызовы mysql_query (или через что там обращение к базе у этого скрипта) на свой MY_mysql_query

что-то типа:
PHP:
function MY_mysql_query($query)
{
  ob_start();
  echo "<hr>".date("m.d.y H:i:s")."<br>Query:<b>$query</b><br><pre>Stack:<br>";
  debug_print_backtrace();
  echo "</pre>";
  $log = ob_get_contents();
  ob_end_clean();
  #echo $log;
  file_put_contents("log.htm", $log, FILE_APPEND); 
  return "";
}
 
Может быть найти поиском все места где используется вызов Mysql функций (mysql_query и т.п.). Т.е. написать парсер для этих задач.

Имхо излишняя работа, искать можно тоталкомандером или npp.
Обращения скрипта к бд не всегда помогают восстановить структуру, мне повезло была админка(таки стоит начинать анализ с неё) и по sql-запросам на update, insert было легче восстановить поля базы. Но так же были и глобальные настройки, которые получались из базы, а потом как элементы массива вызывались в непредсказуемых местах скрипта, частично их помог отловить включенный режим вывода ошибок php Error_Reporting(8191); а частично анализ кода.
 
Структуру востановить удалось, как узнать типы полей? int, varchar и т.д?
 
Назад
Сверху