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

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

24.11.2023, 12:36. Показов 916. Ответов 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
Сообщений: 558
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
Сообщений: 558
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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru