robert1974
24.05.2015, 13:50:03
witam,
Mam takie zadanie. Mam w bazie okolo 100 tabel (forum vbulletin). Z GUI forum wykonuje akcje np. Ban user albo Delete User.
Czy jest moze jakies narzedzie ktore pozwolilo by zapamietac status tabel (ilosc wierszy ale i co jest w tych wierszach) przed akcja i porownac z wartosciami po wykaniu akcji Ban czy Delete? Musze sprawdzic jakich tabel dotyka (Insert/Update/Delete) dana akcja, by potem moc zautomatyzowac i wykonac SQLem.
Dziekuje za pomoc.
DarkAbso
25.05.2015, 09:44:03
Jedyne co mi przychodzi na myśl to pozakładać wyzwalacze na tabele. Nie jest to raczej eleganckie rozwiązanie, ale pozwoli wykonywać akcje po UPDATE, DELETE lub INSERT wybranej tabeli. Jeżeli ma to być tymczasowe rozwiązanie w celu zdiagnozowania jakiegoś problemu to powinno się sprawdzić. W innym wypadku raczej nie polecam.

Więcej na ten temat w google.
phpion
25.05.2015, 09:45:40
Zrób sobie zrzut bazy przed i po zmianach (jako czysty SQL). Następnie korzystając z np. z KDiff porównaj oba zrzuty.
robert1974
25.05.2015, 23:06:28
dzieki, sprobuje napisac rozwiazanie w sql i php do tego. robic kopie tabel, a po akcji, porownywac zawartosci skopiowanych tabel z oryginalnymi. moze cos z tego wyjdzie.
Crozin
26.05.2015, 00:27:29
Nie wystarczy odpalić jakiegoś profilera czy choćby query loga, żeby zobaczyć jakie zapytania lecą do bazy danych?
damian.1923
26.05.2015, 07:18:56
powórzę to co @Crozin, chyba najprościej włączyć pełne logowanie sql:
general_log = 1;
general_log_file = /path/to/query.log;
Pyton_000
26.05.2015, 10:51:50
robert1974
27.05.2015, 13:04:29
dzieki za odpowiedzi. poprobuje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.