сохранение таблицы и последующий откат

Тема в разделе "Как сделать...", создана пользователем S-17, 26 июн 2012.

  1. S-17

    S-17 Постоялец

    Регистр.:
    2 июн 2010
    Сообщения:
    115
    Симпатии:
    3
    Выполняю модуль, который будет обновлять данные в таблицах.
    Но прежде чем он обновит, нужно сохранить(может быть скопировать) содержимое таблицы чтобы после того как скрипт обновит данные, можно было в любой момент откатить-восстановить до прежнего значения.
    Никогда не сталкивался, подскажите как можно решить эту задачу?
    Спасибо!
     
  2. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    Контроль версий структуры базы данных
    http://habrahabr.ru/post/63585/

    В комментариях еще несколько ссылочек на другие проекты.

    Если делать просто бекап, то подойдет http://sypex.net/
     
  3. S-17

    S-17 Постоялец

    Регистр.:
    2 июн 2010
    Сообщения:
    115
    Симпатии:
    3
    мне вот что еще посоветовали:

    Код:
    system('mysqldump -uUSER -pPASSWORD --database dbname > /var/backups/backup.sql'); 
    только не задача...
    А как быть если нужна только таблица из бд? Делать полный дамп не имеет смысла вообще из-за ее объёмности

    И еще вопрос, следом...а какой функцией можно сделать восстановление из этой резервной копии, желательно после нажатия кнопки, чтобы стартовал откат.
     
  4. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    решить можно путем добавления версии к данным, т.е добавляешь в таблицу еще одно поле, version, и в нем хранишь версию, откатиь легко будет до любой из придыдущих версий, посмотри как сделана любая WIKI система
     
  5. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    624
    Симпатии:
    1.379
    Пилять-не перепилять... вы, господа советчики, когда маны курить научитесь прежде чем засирать тему бредосоветами?

    S-17, делаем бекап одной таблицы из базы:
    Код:
    system('mysqldump -uUSER -pPASSWORD dbname table_name> /var/backups/backup.sql'); 
     
  6. S-17

    S-17 Постоялец

    Регистр.:
    2 июн 2010
    Сообщения:
    115
    Симпатии:
    3
    спасибо, stealthdebuger.
    Так а как при нажатии кнопки, вернуть бэкап таблицы обратно на место? Откатить изменение...
     
  7. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    624
    Симпатии:
    1.379
    Код:
    system('mysql -u юзер --password=пароль -default-charset=utf8 имя_бд < имя_файла');
    
    А вообще, рекомендую почитать - http://www.mysql.ru/docs/ многие вопросы сами отпадут.

    P.S. Спасибо в постах это нарушение правил, для этого предназначена кнопка "Мне нравится"
     
    S-17 нравится это.