71 lines
1.7 KiB
Markdown
71 lines
1.7 KiB
Markdown
# Backend
|
||
|
||
Технологии:
|
||
|
||
* ASP.NET
|
||
* Aspire
|
||
* PostgreSQL
|
||
* Docker + Compose
|
||
* Nginx
|
||
* Github CI/CD
|
||
|
||
# ApiService
|
||
|
||
## Docker
|
||
|
||
```bash
|
||
docker run -d -p 8080:8080 \
|
||
--name Backend \
|
||
--restart=always \
|
||
-e DATABASE='Host=192.168.111.0;Port=5432;Database=prod;Username=prod;Password=' \
|
||
-e TZ=Europe/Moscow \
|
||
git.zetcraft.ru/hackathonpreparing/backend:main
|
||
```
|
||
|
||
## Docker compose
|
||
|
||
```yaml
|
||
version: '3.3'
|
||
services:
|
||
backend:
|
||
ports:
|
||
- 8080:8080
|
||
container_name: Backend
|
||
restart: always
|
||
environment:
|
||
- DATABASE=Host=192.168.111.0;Port=5432;Database=prod;Username=prod;Password=
|
||
- TZ=Europe/Moscow
|
||
image: git.zetcraft.ru/hackathonpreparing/backend:main
|
||
```
|
||
|
||
Строка подключения в appsettings.json:
|
||
username:postgres
|
||
password:postgres
|
||
host:localhost
|
||
port:5432
|
||
database:prod
|
||
|
||
|
||
|
||
Если нет миграций в проекте то в папке HackathonPreparing.ApiService нужно писать:
|
||
|
||
dotnet ef migrations add UserContextMigration --context UserContext
|
||
dotnet ef database update --context UserContext
|
||
|
||
dotnet ef migrations add WeatherForecastContextMigration --context WeatherForecastContext
|
||
dotnet ef database update --context WeatherForecastContext
|
||
|
||
И так для каждого DbContext в проекте
|
||
|
||
Если в папке HackathonPreparing.ApiService есть папка Migrations и там есть миграции то можно просто сделать запрос post: /api/db/migrate.
|
||
Все запросы к маршрутам /api/db/... доступны только в dev моде
|
||
|
||
|
||
|
||
/api/swagger - путь к свагеру
|
||
|
||
из свагера в dev моде можно запустить миграции в /api/db/migrate
|
||
|
||
|
||
|