При первом запуске приложения FastAPI/Starlette на локальной машине без Docker:
1. Установите Python и pip, если они еще не установлены.
2. Создайте виртуальное окружение для вашего проекта (опционально, но рекомендуется).
3. Установите необходимые зависимости, включая FastAPI/Starlette и psycopg2 (для работы с PostgreSQL). Выполните команду `pip install fastapi starlette psycopg2`.
4. Создайте файл main.py, где будет содержаться ваше приложение FastAPI/Starlette.
При первом запуске приложения FastAPI/Starlette с Docker:
1. Установите Docker, если он еще не установлен.
2. Создайте файл Dockerfile, в котором будет описано создание образа вашего приложения.
3. Соберите образ Docker с помощью команды `docker build -t <image_name>:<tag> .`.
4. Запустите контейнер с вашим приложением с помощью команды `docker run -p 8000:8000 <image_name>:<tag>`.
Чтобы реализовать сущность, которая будет выполняться только при первом запуске приложения и заполнять нужный столбец в PostgreSQL, можно использовать миграции базы данных.
Вот пример шагов:
1. Установите библиотеку Alembic для работы с миграциями базы данных в ваш проект. Выполните команду `pip install alembic`.
2. Создайте директорию `migrations` в корне вашего проекта.
3. Инициализируйте Alembic, выполнив команду `alembic init alembic`.
4. Отредактируйте файл alembic.ini, установив значения `sqlalchemy.url` и `script_location`.
5. Создайте первую миграцию с помощью команды `alembic revision --autogenerate -m "initial migration"`. Это создаст файл с SQL-скриптом в директории `migrations/versions`.
6. Отредактируйте созданный файл миграции, добавив соответствующий SQL-код для заполнения нужного столбца.
7. Выполните миграцию базы данных с помощью команды `alembic upgrade head`. Это применит миграцию и заполнит таблицу в PostgreSQL.
Теперь созданная миграция будет выполнена только один раз при первом запуске приложения.