![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 26.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć, Szukam pomysłu na wyjęcie z bazy danych tylko części danych i zapisaniu ich do pliku .sql łącznie ze strukturą bazy. Coś takiego jak wersja demo tylko do podglądu z ograniczonym widokiem. Chciałbym aby części tabel i pół z "dużej" bazy ten backup nie uwzględniał. Zależy mi na tym, żeby było to proste w obsłudze. Muszę jak najbardziej to zautomatyzować. Jak już będę miał taki plik to wrzucam go na serwer i co 24 godziny ten plik by nadpisywał tą ograniczoną wersje systemu. Ma ktoś jakiś pomysł / sugestie?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 19 Dołączył: 1.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Mi przychodzą do głowy dwa rozwiązania.
Pierwszy to:
Potem ładujesz do swojej bazy demo poprzez LOAD DATA Tutaj musisz mieć już "czystą" bazę demo (w sensie strukturę). Drugi: Korzystamy z funkcji system() w PHP i bawimy się standardowo z mysqldump. To chyba bardziej skomplikowany sposób. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz przygotować całej bazy demo i zrobić jej dumpa ?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 26.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Najfajniej chyba by było przygotować całą bazę demo. Tylko jak? Każda modyfikacja na jakiś danych to wtedy bym musiał tą drugą bazę aktualizować, czyli ciągły zapis do dwóch baz? Czy jest na to jakiś inny sposób?
Przy load data znów będzie spora rzeźba przy imporcie do różnych tabel różnych danych. Pewnie najprościej by było jednym zapytaniem wyciągnąć dane z jednej tabeli drugim z drugiej i analogicznie je ładować tak? Odświeżam trochę temat bo przygotowałem rozwiązanie na podstawie INTO OUTFILE ale okazało się że jest ono zablokowane na hostingu z którego korzystam. Jest jakaś inna metoda pozwalająca wyjąć część danych z jednej bazy i na jej podstawie uaktualniać drugą? Mam wykupiony hosting więc możliwości mam trochę ograniczone. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 26 Dołączył: 13.09.2007 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Możesz to obejść za pomocą prostego skryptu w php i wersji brutal force. Łączysz się w nim z dwoma bazami jednocześnie (zakładam, że są na jednym serwerze albo mają dostęp zewnętrzny). Co 24h robisz DROP tabel wersji demo, po czym w pętli:
1. pobierz listę tabel aktualnej bazy 2. dla każdej z tabel 2a) pobierz strukturę i indexy 2b) stwórz tabelę o tej strukturze w bazie DEMO i dodaj indexy 2c) pobierz X rekordów z aktualnej bazy 2d) insert wszystkiego do bazy DEMO Kwestia tylko spójności danych, bo jak wybierzesz na sztywno 20 rekordów z jednej tabeli, to może się okazać, że uciąłeś jakieś ważne dane, ale to już kwestia, jak to masz zorganizowane. Prosty przykład z sieci: https://davidwalsh.name/backup-mysql-database-php Ten post edytował sabat24 23.08.2017, 10:59:47 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 16:47 |