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?”
https://github.com/meskyanichi/backup
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