Перейти к содержимому


Создание собственного бєкапа


Сообщений в теме: 39

#1 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 12 Март 2014 - 23:29

Собственно тема немного обобщает. Есть задача: сделать переносимый бэкап определенных таблиц с данными в кб (в том числе и файлы), который смог бы разворачиватся в любой кб стандартными способами. Именно определенных, мне не нужно передавать лишнюю информацию. Стоит еще заметь изначально бэкап может быть очень большим, опять же из-за файлов. Поэтому время выполнения скрипта может затянуться. Вы, разработчики кб, уже решили подобную проблему. Поделитесь своими идеями в какую сторону мыслить, куда смотреть, возможную реализацию:)?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Март 2014 - 09:16

Стандартными способами вы развернуть такой "недобэкап" не сможете, т.к. стандартная функция полностью чистит БД перед загрузкой бэкапа. В итоге у вас получится "недобаза" и фатал еррор. Если только вы самостоятельно сделаете полностью как выгрузку, так и загрузку, например, через свое представление. Что касается вылета по таймауту, то это решается проверкой времени выполнения в цикле и перезапуском скрипта при приближении лимита.

#3 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 13 Март 2014 - 13:01

Просмотр сообщенияCbCoder (13 Март 2014 - 09:16) писал:

Стандартными способами вы развернуть такой "недобэкап" не сможете, т.к. стандартная функция полностью чистит БД перед загрузкой бэкапа. В итоге у вас получится "недобаза" и фатал еррор. Если только вы самостоятельно сделаете полностью как выгрузку, так и загрузку, например, через свое представление. Что касается вылета по таймауту, то это решается проверкой времени выполнения в цикле и перезапуском скрипта при приближении лимита.
Допустим я хочу сделать самостоятельно выгрузку, скажем 1 одна таблица и 1 представление. Какие таблицы (системные) мне нужно поместить в бэкап?

#4 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 13 Март 2014 - 13:06

Очень интересно. А разьве можно стандартным представлением, создать, например новую таблицу с несколькими полями?

#5 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 13 Март 2014 - 13:39

Просмотр сообщенияdolphin (13 Март 2014 - 13:06) писал:

Очень интересно. А разьве можно стандартным представлением, создать, например новую таблицу с несколькими полями?
А в чем проблема? В представлении можно делать практически все.

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Март 2014 - 14:13

Просмотр сообщенияwondertalik (13 Март 2014 - 13:01) писал:

Допустим я хочу сделать самостоятельно выгрузку, скажем 1 одна таблица и 1 представление. Какие таблицы (системные) мне нужно поместить в бэкап?

Полный список я сам не знаю без изучения кода. Попробуйте сделать так: сравните вашу БД до добавления таблицы и после, результат и будет ответом. Учтите также что в таблице есть свои подэлементы, начиная с полей и заканчивая внешними формами. Если нужен полный набор - их тоже понадобавьте для сравнения.

#7 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 13 Март 2014 - 15:32

Просмотр сообщенияCbCoder (13 Март 2014 - 09:16) писал:

Что касается вылета по таймауту, то это решается проверкой времени выполнения в цикле и перезапуском скрипта при приближении лимита.
Можно дать пример именно перезапуска? Не совсем понимаю каким образом его перезапускать.

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Март 2014 - 16:57

Обычная команда перенаправления, через функцию header. Например,

header("Location: http://www.example.com/my_script.php");


#9 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 15 Март 2014 - 22:30

Начнем с самого простого, как упаковывать внешние файлы в бэкап? Теперь внешние файлы переносятся с бэкапом отдельно. Каким образом мне это делать. Прошу алгоритм.

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Март 2014 - 11:31

Неоднократно писалось на форуме про функцию get_file_path, которая генерирует путь к прикрепленному файлу. Собственно это и ответ, как считать нужные файлы и как их записать обратно.

#11 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 17 Март 2014 - 12:11

Просмотр сообщенияCbCoder (17 Март 2014 - 11:31) писал:

Неоднократно писалось на форуме про функцию get_file_path, которая генерирует путь к прикрепленному файлу. Собственно это и ответ, как считать нужные файлы и как их записать обратно.
Я говорю про внешние файлы, а не файлы из таблиц. Внешние файлы теперь отдельно в бэкапе же переносятся. Независимо от того выберу я бэкап с файлом или без.

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Март 2014 - 12:39

А в чем проблема то с ними? Не совсем понял.

#13 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 17 Март 2014 - 13:02

В бэкапе есть в files каталог .ext_files - я так понимаю туда внешние файлы сохраняются? Каким образом там именуются файлы? Вот это мне не понятно.

И еще вопрос, в каких таблицах сохраняются права доступа, правила?

Сообщение отредактировал wondertalik: 17 Март 2014 - 13:03


#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 17 Март 2014 - 14:51

Просмотр сообщенияwondertalik (17 Март 2014 - 13:02) писал:

В бэкапе есть в files каталог .ext_files - я так понимаю туда внешние файлы сохраняются? Каким образом там именуются файлы? Вот это мне не понятно.

Насколько знаю, они там хранятся так же как и оригинале, в тех же папках с теми же именами. Но я не совсем понимаю: если вы создаете свой формат бэкапа, какая вам разница, как они хранятся в стандартном формате? Все равно ведь будете читать не стандартными средствами. Запакуйте как вам удобнее.

Просмотр сообщенияwondertalik (17 Март 2014 - 13:02) писал:

И еще вопрос, в каких таблицах сохраняются права доступа, правила?

В таблицах cb_acc_*. Я же предложил вам выше способ определения используемых системных таблиц.

#15 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 17 Март 2014 - 15:05

Я планирую делать бэкап полностью совместимым с вашим. Чтобы распаковку делали стандартными средствами. Только в моем механизме иметь возможность указывать какие таблицы и представляения отпрвлять в бэкап. Пока минимальные требования, а там посмотрим, возможно будет кому удобно.

#16 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 20 Март 2014 - 04:22

Цитата

Загружаемый файл не является файлом бэкапа программы Клиентская база.
Сделал бэкап, вроде как соблел все что нужно. Попытался бэкап развернуть, прогрузился, но в конце написал это.

Второй вопрос, конфигурация нулевая. Внешних файлов нет. Но в files лежат какие-то файлы. Откуда? Собственный бэкап, бэкап от кб

#17 dolphin

    Активный участник

  • Пользователи
  • PipPipPip
  • 341 сообщений

Отправлено 20 Март 2014 - 06:01

ух ты!!! А поделитесь разработкой?

#18 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Март 2014 - 10:39

Цитата

но в конце написал это

Что именно?

Цитата

Внешних файлов нет. Но в files лежат какие-то файлы. Откуда?

Возможно, мусор, потерянные файлы. Проверьте через Менеджер файлов, там есть поиск и чистка потерянных.

#19 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 20 Март 2014 - 12:50

Просмотр сообщенияCbCoder (20 Март 2014 - 10:39) писал:

Что именно?Возможно, мусор, потерянные файлы. Проверьте через Менеджер файлов, там есть поиск и чистка потерянных.
Внешних файлов нет. Нет ни одной таблицы.

Просмотр сообщенияCbCoder (20 Март 2014 - 10:39) писал:

Что именно?
Загружаемый файл не является файлом бэкапа программы Клиентская база.

Я бэкап приложил. Попробуйте его развернуть. Увидите.

#20 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 20 Март 2014 - 12:53

Просмотр сообщенияdolphin (20 Март 2014 - 06:01) писал:

ух ты!!! А поделитесь разработкой?
Разработка очень сырая пока что. Когда будет чем поделится напишу в блоге.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных