Панель керування
Google Drive → Notion
Синхронізація, живі логи та автоматичний запуск щопонеділка о 08:47.
Запуск синхронізації
Одночасно може працювати лише один запуск.
Живий прогрес
Ще не завантажено.
Живий журнал
Останні 200 подій поточного запуску.
Останній звіт
Повний звіт після завершення запуску.
Текстовий звіт
Звіт ще не завантажено.
Повний журнал GitHub Actions
Журнал ще не завантажено.
Історія запусків
Останні 30 синхронізацій.
Детальна інструкція
1. Як працює система
Сайт не виконує синхронізацію самостійно. Він надсилає команду в GitHub Actions, де запускається Python-скрипт. Поточний стан, команди керування та живий журнал зберігаються в Cloudflare D1.
Mac, браузер і відкрита сторінка не потрібні після запуску. Автоматична повна синхронізація виконується щопонеділка о 08:47 за часовим поясом Europe/Kyiv.
2. Кнопки запуску
Запустити повну синхронізацію — починає новий обхід із Google Drive Root. Старий pause checkpoint очищується. Збережений state використовується, тому вже створені сторінки не повинні дублюватися.
Перевірити базу — перевіряє Drive і Notion без внесення змін у Notion. Цей режим також підтримує паузу та справжнє відновлення.
Повторити помилки — повторно обробляє лише об’єкти з sync_errors.csv. Не проходить усе дерево Drive.
Повна перевірка Notion — примусово перевіряє всі відомі сторінки, таблиці та блоки Notion і відновлює відсутні елементи.
3. Пауза
Кнопка «Поставити на паузу» використовується, коли процес потрібно тимчасово перервати й потім продовжити з наступного незавершеного об’єкта.
- Скрипт завершує поточний файл або папку.
- Зберігає точний checkpoint: завершені Drive ID, завершені папки, лічильник і останній завершений шлях.
- Завершує поточний GitHub Actions run зі статусом «Призупинено».
- GitHub зберігає drive_to_notion_checkpoint.json і drive_to_notion_state.json у репозиторії.
- Після цього кнопка «Відновити» запускає новий run із параметром resume.
Під час відновлення скрипт може коротко показати Google Drive Root та батьківські папки — це лише навігація до checkpoint. Уже завершені файли не обробляються повторно, а повністю завершені папки пропускаються разом з усім піддеревом.
4. Відновити
«Відновити» доступна тільки після статусу «Призупинено» і після того, як попередній GitHub Actions run повністю завершився та зберіг checkpoint.
Перед запуском сайт перевіряє drive_to_notion_checkpoint.json у GitHub. Якщо checkpoint відсутній, пошкоджений або належить іншому режиму, відновлення не запускається — замість цього показується помилка. Це захищає від непомітного старту з кореня.
5. Безпечно зупинити
«Безпечно зупинити» завершує поточний об’єкт, зберігає звичайний state і видаляє pause checkpoint. Використовуйте цю кнопку, коли продовжувати саме цей запуск не потрібно.
Наступне натискання «Запустити повну синхронізацію» почне новий обхід із кореня, але використовуватиме state, щоб не створювати дублікати.
6. Примусово зупинити
«Примусово зупинити» негайно надсилає GitHub команду force-cancel. Поточний об’єкт може не завершитися, а останні зміни state або журналу можуть не встигнути зберегтися.
Цю кнопку слід використовувати лише тоді, коли пауза або безпечна зупинка не спрацювали. Після примусової зупинки звичайний новий запуск завжди починається з кореня; stale checkpoint автоматично не використовується.
7. Коротка різниця між трьома діями
| Дія | Коли використовувати | Checkpoint | Наступний запуск |
|---|---|---|---|
| Пауза | Тимчасово перервати | Зберігається | Продовжує з наступного об’єкта |
| Безпечний стоп | Коректно завершити поточний запуск | Видаляється | Новий обхід із кореня |
| Примусовий стоп | Аварійна зупинка завислого процесу | Може бути неповним | Новий обхід із кореня |
8. Живий прогрес
Попереднього підрахунку всіх об’єктів немає. Панель показує кількість уже завершених об’єктів, поточний шлях і дію. Після відновлення лічильник продовжується зі значення checkpoint, а не починається з нуля.
9. Живий журнал
Автопрокрутка вимкнена за замовчуванням. Коли журнал прокручено вгору, нові записи не повинні стрибком переносити сторінку донизу. Позиція зберігається за видимим записом журналу.
Увімкніть «автопрокрутка», щоб завжди бачити останній запис, або натисніть «До кінця ↓» один раз.
10. Оновити статус
Кнопка перевіряє Cloudflare D1 і реальний стан GitHub Actions, оновлює статус, поточний об’єкт і останні 200 записів журналу. Вона не видаляє старий журнал: після завершення на екрані залишається журнал останнього запуску. Після старту нового run панель автоматично перемикається на його журнал.
11. Рекомендований тест паузи
- Запустіть «Перевірити базу».
- Дочекайтеся щонайменше 10–20 завершених об’єктів.
- Натисніть «Поставити на паузу».
- Дочекайтеся статусу «Призупинено» та завершення GitHub Actions.
- Запам’ятайте лічильник і останній завершений шлях.
- Натисніть «Відновити».
- Переконайтеся, що лічильник не скинувся до нуля, а першим новим обробленим об’єктом є наступний незавершений Drive ID.
12. Що не слід робити
Не видаляйте drive_to_notion_state.json вручну. У ньому зберігаються зв’язки між Drive та Notion. Його видалення може спричинити повторне створення сторінок або дублі.