Коммиты:
bff778f- feat: single migration with file conversion and caching support64684bf- feat: add VK Storage, document conversion, caching, and generated images support
# 1. Перейти в директорию проекта
cd /root/GPTutor
# (или ваш путь к проекту)
# 2. Скачать обновления
git pull
# 3. Остановить backend
docker-compose -f docker-compose-prod.yaml stop backend-prod
# 4. Удалить старый контейнер
docker-compose -f docker-compose-prod.yaml rm -f backend-prod
# 5. ВАЖНО: Удалить старую БД (один раз)
docker volume rm gptutor_backend-db
# Если volume нет, игнорируйте ошибку
# 6. Пересобрать БЕЗ кеша (ОБЯЗАТЕЛЬНО!)
docker-compose -f docker-compose-prod.yaml build --no-cache backend-prod
# 7. Запустить
docker-compose -f docker-compose-prod.yaml up -d backend-prod
# 8. Проверить логи
docker logs -f backend-prodDatabase does not exist, creating and applying migrations...
Prisma schema loaded from prisma/schema.prisma
Datasource "db": SQLite database "prod.db" at "file:/app/prisma/prod.db"
Applying migration `20251009103248_init`
The following migrations have been applied:
migrations/
└─ 20251009103248_init/
└─ migration.sql
Migration status:
Database schema is up to date!
Starting application...
No migration found in prisma/migrations ← Если это есть - плохо!
curl http://localhost:3001/health
# Ожидаемо: {"status":"ok"}docker exec backend-prod npx prisma migrate status
# Ожидаемо: 1 migration found, Database schema is up to date!docker exec backend-prod sqlite3 /app/prisma/prod.db "PRAGMA table_info(files);"
# Должны быть поля: notStatic, originalName, originalSize, convertedcurl -X POST http://your-server/upload \
-H "Authorization: Bearer vk1..." \
-F "file=@test.docx"Ожидаемый ответ:
{
"success": true,
"message": "File converted to PDF and uploaded successfully!",
"data": {
"converted": true,
"fromCache": false,
"file": {
"name": "test.pdf",
"type": "application/pdf"
}
}
}curl -X POST http://your-server/upload \
-H "Authorization: Bearer vk1..." \
-F "file=@test.docx"Ожидаемый ответ:
{
"success": true,
"message": "File already converted and cached!",
"data": {
"converted": true,
"fromCache": true ← Работает из кеша!
}
}В приложении отправьте:
Нарисуй красивый закат
Модель должна:
- Вернуть текст
- Вернуть изображение (base64)
- Изображение отобразится в чате
Причина: Старый кеш Docker или миграции не скопировались
Решение:
# Проверить что миграции есть на сервере
ls -la GPTutor-Backend-v2/prisma/migrations/
# Должна быть папка: 20251009103248_init/
# Если её нет:
git pull --force
# Пересобрать БЕЗ кеша
docker-compose -f docker-compose-prod.yaml build --no-cache backend-prodПричина: Миграция не применилась
Решение:
docker exec backend-prod npx prisma migrate deploy
docker restart backend-prodПричина: БД не была создана
Решение:
# Проверить что БД создалась
docker exec backend-prod ls -la /app/prisma/
# Должен быть файл: prod.db
# Если нет - проверить логи
docker logs backend-prod | grep -i error| Компонент | Статус |
|---|---|
| VK Storage (модель) | ✅ Готово |
| Конвертация DOC/DOCX/PPT/PPTX | ✅ Готово |
| Кеширование конвертаций | ✅ Готово |
| Сгенерированные изображения | ✅ Готово |
| Миграции Prisma | ✅ Исправлено |
| Dockerfile | ✅ Обновлен (LibreOffice) |
| Git | ✅ Все запушено |
Просто выполните команды выше на сервере, и всё заработает.
Время выполнения: ~3-5 минут
Важно: Используйте --no-cache при сборке, чтобы миграции точно скопировались!
Отправьте логи:
docker logs backend-prod > logs.txtИ проверьте:
# Миграции на сервере
ls -la GPTutor-Backend-v2/prisma/migrations/
# Миграции в контейнере
docker exec backend-prod ls -la /app/prisma/migrations/Если в контейнере миграций нет - значит build --no-cache не был выполнен!
Удачи! 🍀