Wyczyszczenie bazy danych

0

Mam problem, z którym nie bardzo mam pomysł jak sobie poradzić w sposób "ludzki". Po 1 mam strasznie zabagniona strukturę bazę danych, w której mogę grzebać i fixować na bieżąco ale nie mam czasu na zaoranie tego i przepisanie od nowa. Zresztą przeprojektowanie tego spowodowałoby straszliwy sajgon w aplikacji.

Chce aby wyczyścić wszystkie dane z tabel w bazie danych. Dostałem "pomysł" aby tabela po tabeli pobierać wszystkie rekordy i potem iterując po liście wynikowej robić remove każdego elementu osobno.
Mimo. że tabel jest około 15 a wpisów w każdej od 5 do 50. to wydaję mi się to strasznie nieprofesjonalne podejście.

Sam wygooglowałem coś takiego jak truncate jednak używając tego na zasadzie:

 
entityManager.getTransaction().begin();
entityManager.createNativeQuery("truncate TABLE Tabela1"); 
entityManager.getTransaction().commit();

nic się nie dzieje. Nie jestem w ogóle pewny czy dla tej konkretnej bazy da się to w ten sposób zrobić.

0

Nie możesz sprawdzić logów mysql czy nie ma jakiegoś errora? truncate zwróci błąd jeśli tabela ma relacje do innej tabeli.

Nie pomyślałeś żeby zrobić dump samej struktury, usunąć całą tabelę i wygenerować wcześniej zapisaną strukturę ?

0
  1. to nie jest mysql, w konsoli aplikacji nie dzieje się zupełnie nic, tak jakby pomijało tę linię i szło dalej (sprawdzone prostym loggerem).
  2. myślałem ale jest problem. Baza danych działa jako oddzielny moduł OSGI (jest serwisem). Musiałbym zatrzymać go i przy okazji wszystkie serwisy zależne od niego. Zdropować bazę, utworzyć tabele od nowa i uruchomić pozostałe serwisy a na to nie mogę sobie pozwolić gdyż może być tak, iż aplikacja działa a potrzebne dane ma w cache, w tym czasie użytkownik czyści ją i wgrywa odpowiednie ustawienia z XML do bazy. Tak wiem, architektura projektu jest skopana ale nie mam na to wpływu...
2
hywak napisał(a):

truncate zwróci błąd jeśli tabela ma relacje do innej tabeli.

Borze.
Nie relacje tylko klucze obce.

@artur52, a próbowałeś delete *?

0
somekind napisał(a):

Borze.
Nie relacje tylko klucze obce.

borze, przestań poprawiać na siłę
klucze obce w relacjach (relation) tworzą relacje (relationship) - synonim: związki

1 użytkowników online, w tym zalogowanych: 0, gości: 1