Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569

Ошибка в файле конфигурации для сборки проекта

24.11.2023, 12:36. Показов 946. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Изучаю fast api. Пытаюсь собрать проект по документации:
https://fastapi-tutorial.readt... objectives

Там по ссылке есть такой заголовок, выделенный жирным чёрным шрифтом "Postgres setup". Вот там почему-то в Dockerfile к нему нет никакой инструкции об установке postgresql-server. Я вот второй день уже бьюсь над ошибкой почему адрес подключения недоступен:

Bash
1
2
3
4
5
Is the server running on host "localhost" (127.0.0.1) and accepting
        TCP/IP connections on port 5432?
could not connect to server: Address not available
        Is the server running on host "localhost" (::1) and accepting
        TCP/IP connections on port 5432?
Ошибка возникает при запуске команды
Bash
1
uvicorn app.main:app --reload --workers 1 --host 0.0.0.0 --port 8000
вручную - при вызове create_all из объекта metadata:

https://fastapi.tiangolo.com/t... tabbed_5_2

(см. заголовок sql_app/main.py):

Python
1
2
3
4
5
6
7
8
9
from typing import List
 
from fastapi import Depends, FastAPI, HTTPException
from sqlalchemy.orm import Session
 
from . import crud, models, schemas
from .database import SessionLocal, engine
 
models.Base.metadata.create_all(bind=engine)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2023, 12:36
Ответы с готовыми решениями:

Ошибка сборки проекта
Добрый день. Я давно не задавал вопросы на форуме. Облазил все форумы по своей проблеме и задаю этот вопрос как в последнюю инстанцию....

Подбор конфигурации компьютера для сборки.
Здравствуйте. Подбираю конфигурацию компьютера для сборки. Я в этом новичек, поэтому вопрос в следующем: подойдут ли все эти компоненты...

Ошибка во время сборки проекта
Всем привет. У меня след. ошибка .. "Ошибка во время сборки проекта 1 Во время выполнения сборки на этапе 'QMake' Прерванная...

2
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
25.11.2023, 11:57  [ТС]
Вот конфигурация только с web (код python + fastapi) и postgres:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: "3.8"
services:
  web:
    build: ./src
    #command: sh -c 'while !</dev/tcp/db/5432; do sleep 1; done; uvicorn app.main:app --reload --workers 1 --host 0.0.0.0 --port 8000'
    command: uvicorn app.main:app --reload --workers 1 --host 0.0.0.0 --port 8000
    env_file:
      ./src/.env
    ports:
      - 8081:8000
      - 8069:8000
    depends_on:
      - db
    links:
      - db:db
    networks:
      - profiles
  db:
    restart: unless-stopped
    image: postgres:13.4-alpine
    env_file:
      ./src/.env
    ports:
      - 5432:5432
    volumes:
      - ./src/dump:/var/lib/postgres/data
    networks:
      - profiles
 
networks:
  profiles:
    driver: bridge

Как видно, есть соединение по мосту profiles.

.env:

Bash
1
2
3
4
5
6
DATABASE_URL=postgresql://user:password@localhost/db_name
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_DB=db_name
POSTGRES_PORT=5432
POSTGRES_HOST_AUTH_METHOD=trust
файл для запуска точки входа:

main.py:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import os
 
from databases import Database
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from sqlalchemy import create_engine
from sqlalchemy.engine import URL
 
from . import db, router
from .logger import logging
 
origins = ["http://localhost:8081", "http://127.0.0.1:8081"]
 
url_db = URL.create(
    "postgresql",
    username=os.getenv("POSTGRES_USER"),
    password=os.getenv("POSTGRES_PASSWORD"),
    host="localhost",
    database=os.getenv("POSTGRES_DB")
)
 
app = FastAPI(
    docs_url="/docs",
    title="MyAPI",
    openapi_url="/api/openapi.json"
)
 
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"]
)
 
app.include_router(router.country_api.router)
app.include_router(router.city_api.router)
app.include_router(router.organization_api.router)
app.include_router(router.school_api.router)
app.include_router(router.faculty_api.router)
app.include_router(router.chair_api.router)
app.include_router(router.profile_api.router)
 
 
@app.on_event("startup")
async def startup():
    await database.connect()
 
@app.on_event("shutdown")
async def shutdown():
    await database.disconnect()
 
database = Database(url_db.render_as_string())
 
engine = create_engine(url_db)
db.Base.metadata.create_all(engine)
На выполнении последней инструкции происходит ошибка.

У меня впечатление, что сервис web не видит запущенного postgres (а он запущен в другом контейнере db) и хотя, они соединены это "невидение" происходит.

Когда я устанавливаю конфигурацию postgres уже непосредственно в web, то происходит другая ошибка при создании таблиц, что не найдена роль (пользователь бд)

Или здесь нужен другой дистрибутив postges (какой?): пробовал вот эти postgresql postgresql-contrib - не решают проблемы. В примере по ссылке выше там использовалась версия 1.3.16 sqlalchemy, у меня повыше 1.4.42.
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
27.11.2023, 15:30  [ТС]
Я так понял, что имя сервиса - db прописать нужно для DATABASE_URL вместо localhost

Python
1
2
3
4
5
6
DATABASE_URL=postgresql://user:password@db/db_name
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_DB=db_name
POSTGRES_PORT=5432
POSTGRES_HOST_AUTH_METHOD=trust
Добавлено через 1 час 2 минуты
Да, проблема решена, можете тему закрыть)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.11.2023, 15:30
Помогаю со студенческими работами здесь

NDK ошибка сборки проекта
Здравствуйте! Пытаюсь настроить сборку C++ библиотеки в Android Studio. Делал по примерам, в итоге получил такой build.gradle: apply...

Ошибка CLR20r3 после сборки проекта
После создании setup файла и после установки приложения на другом пк при запуске возникает ошибка при запуске. Фрейморк устанавливается при...

Ошибка сборки проекта по андройд QML
Здравствуйте, уважаемые форумчане! Изучаю qml на примере - пытаюсь создать приложение под андройд на QML. Столкнулся с проблемой при...

Ошибка сборки проекта с boost | Linux
Доброго времени суток! Не могу собрать проект с использованием boost. Вот ошибки: $ g++ -I /usr/include/boost async.c++ -o async...

Ошибка при сборки проекта на Unity3D
Скрин проблемы


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru