BIG_UPDATE deleted vps, added s3 infrastructure.
This commit is contained in:
128
DEPLOY_INSTRUCTIONS.md
Normal file
128
DEPLOY_INSTRUCTIONS.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# 🚀 Инструкции по развертыванию обновлений
|
||||
|
||||
## Проблема
|
||||
После обновления кода на сервере появляются ошибки:
|
||||
- `Cannot read properties of undefined (reading 'findMany')` - Prisma Client не имеет моделей Post/Comment
|
||||
- OAuth endpoints возвращают 404
|
||||
- Admin endpoints возвращают 404
|
||||
|
||||
## Решение
|
||||
|
||||
### 1. Убедитесь, что schema.prisma на сервере актуальна
|
||||
|
||||
```bash
|
||||
ssh root@ospab.host
|
||||
cd /var/www/ospab-host/backend
|
||||
|
||||
# Проверьте, что в schema.prisma есть модели Post и Comment
|
||||
grep -A 5 "model Post" prisma/schema.prisma
|
||||
grep -A 5 "model Comment" prisma/schema.prisma
|
||||
```
|
||||
|
||||
Если моделей нет, загрузите schema.prisma с локальной машины:
|
||||
|
||||
```powershell
|
||||
# На локальной машине (Windows)
|
||||
cd d:\Ospab-projects\ospabhost8.1\ospabhost\backend
|
||||
scp prisma/schema.prisma root@ospab.host:/var/www/ospab-host/backend/prisma/
|
||||
```
|
||||
|
||||
### 2. Создайте таблицы в базе данных (если их нет)
|
||||
|
||||
```bash
|
||||
# На сервере
|
||||
cd /var/www/ospab-host/backend
|
||||
npx prisma db push
|
||||
```
|
||||
|
||||
### 3. Регенерируйте Prisma Client
|
||||
|
||||
```bash
|
||||
# На сервере
|
||||
npx prisma generate
|
||||
```
|
||||
|
||||
Эта команда создаст типы для моделей Post и Comment в `node_modules/@prisma/client`
|
||||
|
||||
### 4. Загрузите обновленный dist с локальной машины
|
||||
|
||||
```powershell
|
||||
# На локальной машине (Windows)
|
||||
cd d:\Ospab-projects\ospabhost8.1\ospabhost\backend
|
||||
scp -r dist/ root@ospab.host:/var/www/ospab-host/backend/
|
||||
```
|
||||
|
||||
### 5. Перезапустите backend
|
||||
|
||||
```bash
|
||||
# На сервере
|
||||
pm2 restart backend
|
||||
pm2 logs backend --lines 50
|
||||
```
|
||||
|
||||
## Проверка
|
||||
|
||||
После выполнения всех шагов проверьте:
|
||||
|
||||
```bash
|
||||
# 1. OAuth endpoints (должны возвращать 302 redirect)
|
||||
curl -I https://ospab.host:5000/api/auth/google
|
||||
curl -I https://ospab.host:5000/api/auth/github
|
||||
curl -I https://ospab.host:5000/api/auth/yandex
|
||||
|
||||
# 2. Admin endpoints (должны возвращать 401 без токена или 200 с токеном)
|
||||
curl https://ospab.host:5000/api/admin/users
|
||||
|
||||
# 3. Blog endpoints (должны возвращать JSON)
|
||||
curl https://ospab.host:5000/api/blog/posts
|
||||
curl https://ospab.host:5000/api/blog/admin/posts -H "Authorization: Bearer YOUR_TOKEN"
|
||||
```
|
||||
|
||||
## Что было исправлено в коде
|
||||
|
||||
### backend/src/index.ts
|
||||
```typescript
|
||||
// Добавлены импорты:
|
||||
import passport from './modules/auth/passport.config';
|
||||
import oauthRoutes from './modules/auth/oauth.routes';
|
||||
import adminRoutes from './modules/admin/admin.routes';
|
||||
|
||||
// Добавлена инициализация Passport:
|
||||
app.use(passport.initialize());
|
||||
|
||||
// Подключены маршруты:
|
||||
app.use('/api/auth', oauthRoutes); // OAuth (Google/GitHub/Yandex)
|
||||
app.use('/api/admin', adminRoutes); // Admin панель
|
||||
```
|
||||
|
||||
### backend/src/modules/auth/oauth.routes.ts
|
||||
```typescript
|
||||
// Убраны типы `any`, добавлен интерфейс:
|
||||
interface AuthenticatedUser {
|
||||
id: number;
|
||||
email: string;
|
||||
username: string;
|
||||
}
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Ошибка: "Cannot read properties of undefined (reading 'findMany')"
|
||||
**Причина:** Prisma Client не имеет моделей Post/Comment
|
||||
**Решение:** Выполните `npx prisma generate` на сервере
|
||||
|
||||
### Ошибка: "Table 'ospabhost.post' doesn't exist"
|
||||
**Причина:** Таблицы не созданы в базе данных
|
||||
**Решение:** Выполните `npx prisma db push` на сервере
|
||||
|
||||
### OAuth возвращает 404
|
||||
**Причина:** OAuth маршруты не подключены
|
||||
**Решение:** Загрузите обновленный dist и перезапустите backend
|
||||
|
||||
### Admin endpoints возвращают 404
|
||||
**Причина:** Admin маршруты не подключены
|
||||
**Решение:** Загрузите обновленный dist и перезапустите backend
|
||||
|
||||
---
|
||||
|
||||
**Дата обновления:** 1 ноября 2025 г.
|
||||
Reference in New Issue
Block a user