Ściągnięcie backupu bazy danych

Cześć,
Potrzebuję możliwość wykonywania backupu bazy danych z poziomu samej aplikacji i ściągnięcia takiego pliku przez użytkownika. Żeby było ciekawiej mam prosty formularz, w którym określane jest która tabele z bazy i z jakiego okresu czasu dane zapisać, plus oczywiście opcja zapisu kompletnego backupa bazy. Jak zabrać się do czegoś takiego w ogóle?

EDIT:
Pff, nie doczytałem. Chcesz z poziomu użytkownika. Pozostaje command-line i wykonanie polecenia dump, zależnie od użytej bazy.


A jaka baza danych?

Musisz po prostu połączyć się z bazą danych.

Najłatwiej będzie Ci poprzez GUI
MySQL
Sequel Pro -> [File [menu] -> Export [submenu] -> MySQL dump… ] (https://groups.google.com/forum/?fromgroups=#!topic/sequel-pro/IXYLQgdA4Ts)

PostgreSQL
PgAdmin -> Prawym klik -> Backup

Właśnie nie mogę znaleźć jak to polecenie odpalić. Baza postgre. Całość ma działać tak, że użytkownik wypełnia sobie formularz, w którym określa jakie elementy mają zostać zapisane, po wysłaniu formularza tworzy się plik backupu i zostaje on ściągnięty na urządzenie użytkownika.
I od razu uprzedzam, nie ma możliwości wytłumaczenia klientowi, że nie potrzebuje takiej funkcjonalności, bo: “co będzie jeśli serwer zapomni sam backup zrobić automatycznie?” :wink:

https://github.com/meskyanichi/backup :slight_smile:

przykład DSLa dla PostgreSQL z wybranymi tabelami masz w Getting Started ( https://github.com/meskyanichi/backup/wiki/Getting-Started )

database PostgreSQL do |db| db.name = "my_database_name" db.username = "my_username" db.password = "my_password" db.host = "localhost" db.port = 5432 db.socket = "/tmp/pg.sock" db.only_tables = ["only", "these", "tables"] db.additional_options = ["-xc", "-E=utf8"] # Optional: Use to set the location of this utility # if it cannot be found by name in your $PATH # db.pg_dump_utility = "/opt/local/bin/pg_dump" end