Реализация Page и DataCardWidget
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Пути
|
||||
# ------------------------------------------------------------------------------
|
||||
API_DIR := api
|
||||
FRONTEND_DIR := frontend
|
||||
|
||||
# Секунды ожидания для `docker compose up --wait` (healthcheck Postgres + API).
|
||||
WAIT_TIMEOUT ?= 300
|
||||
DOCKER_UP := docker compose up -d --wait --wait-timeout $(WAIT_TIMEOUT)
|
||||
|
||||
# После `make prepare` / `make dev`: вызвать `rails db:seed` в backend (0 — не вызывать).
|
||||
SEED_ON_PREPARE ?= 1
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Локальная разработка: Postgres + Rails на хосте (без Docker)
|
||||
# ------------------------------------------------------------------------------
|
||||
LOCAL_PG_HOST ?= localhost
|
||||
LOCAL_PG_PORT ?= 5432
|
||||
LOCAL_PG_USER ?= postgres
|
||||
LOCAL_PG_PASSWORD ?= postgres
|
||||
LOCAL_PG_DB ?= app_development
|
||||
|
||||
LOCAL_PG_ENV := PGPASSWORD=$(LOCAL_PG_PASSWORD) PGHOST=$(LOCAL_PG_HOST) PGPORT=$(LOCAL_PG_PORT) PGUSER=$(LOCAL_PG_USER)
|
||||
LOCAL_RAILS_ENV := DATABASE_HOSTNAME=$(LOCAL_PG_HOST) DATABASE_PORT=$(LOCAL_PG_PORT) DATABASE_USERNAME=$(LOCAL_PG_USER) DATABASE_PASSWORD=$(LOCAL_PG_PASSWORD)
|
||||
|
||||
# Команда для local-rails: make local-rails RAILS_CMD="db:migrate"
|
||||
RAILS_CMD ?= console
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
.PHONY: help prepare setup dev \
|
||||
restart build start stop logs bash \
|
||||
rails bundle yarn npm \
|
||||
up \
|
||||
db db-console db-migrate db-rollback db-reset db-seed db-prepare \
|
||||
db-create db-drop db-docker-recreate \
|
||||
db-create-user db-grant-user \
|
||||
local-bundle local-rails local-console local-server \
|
||||
local-db-create local-db-drop local-db-migrate local-db-rollback \
|
||||
local-db-reset local-db-seed local-db-prepare local-db-console
|
||||
|
||||
help:
|
||||
@echo "Быстрый старт (Docker: БД + API + фронтенд)"
|
||||
@echo " make prepare # сборка, up, затем db:seed (если SEED_ON_PREPARE=1; то же: make setup)"
|
||||
@echo " make dev # prepare, затем логи всех сервисов (Ctrl+C — только выход из просмотра логов)"
|
||||
@echo " make up # поднять стек (ждёт готовности Postgres и API)"
|
||||
@echo " make stop # docker compose down"
|
||||
@echo ""
|
||||
@echo "Прочие команды Docker"
|
||||
@echo " make restart|build|logs"
|
||||
@echo " make bash # оболочка в контейнере backend"
|
||||
@echo " make rails CMD=... # например: make rails CMD=db:migrate"
|
||||
@echo " make bundle CMD=... # bundle в контейнере backend"
|
||||
@echo " make yarn CMD=... # yarn в контейнере frontend"
|
||||
@echo " make db-console # psql в контейнере БД (синоним: make db)"
|
||||
@echo " make db-migrate|db-rollback|db-reset|db-seed|db-prepare"
|
||||
@echo " make db-create|db-drop # rails db:create / db:drop в backend"
|
||||
@echo " make db-docker-recreate # пустая БД в контейнере Postgres (dropdb + createdb)"
|
||||
@echo ""
|
||||
@echo "Локально на хосте (Postgres + Rails без Docker)"
|
||||
@echo " make local-bundle && make local-db-prepare && make local-server"
|
||||
@echo " Параметры БД: переменные LOCAL_PG_* в начале этого Makefile"
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Docker Compose — подготовка и жизненный цикл
|
||||
# ------------------------------------------------------------------------------
|
||||
prepare setup:
|
||||
docker compose build
|
||||
$(DOCKER_UP)
|
||||
ifneq ($(SEED_ON_PREPARE),0)
|
||||
docker compose exec -T backend ./bin/rails db:seed
|
||||
endif
|
||||
@echo ""
|
||||
@echo "Готово:"
|
||||
@echo " API http://localhost:3000"
|
||||
@echo " Фронтенд http://localhost:5173"
|
||||
@echo " Postgres localhost:5432, БД app_development, пользователь postgres"
|
||||
|
||||
dev: prepare
|
||||
docker compose logs -f
|
||||
|
||||
restart:
|
||||
docker compose down
|
||||
docker compose up -d --build --wait --wait-timeout $(WAIT_TIMEOUT)
|
||||
|
||||
build:
|
||||
docker compose build
|
||||
|
||||
start up:
|
||||
$(DOCKER_UP)
|
||||
|
||||
stop:
|
||||
docker compose down
|
||||
|
||||
logs:
|
||||
docker compose logs -f
|
||||
|
||||
bash:
|
||||
docker compose exec backend bash
|
||||
|
||||
rails:
|
||||
docker compose exec backend ./bin/rails $(CMD)
|
||||
|
||||
bundle:
|
||||
docker compose exec backend bundle $(CMD)
|
||||
|
||||
yarn:
|
||||
docker compose exec frontend yarn $(CMD)
|
||||
|
||||
npm:
|
||||
docker compose exec frontend npm $(CMD)
|
||||
|
||||
db-console db:
|
||||
docker compose exec database psql -U postgres -d app_development
|
||||
|
||||
db-migrate:
|
||||
docker compose exec backend ./bin/rails db:migrate
|
||||
|
||||
db-rollback:
|
||||
docker compose exec backend ./bin/rails db:rollback
|
||||
|
||||
db-reset:
|
||||
docker compose exec backend ./bin/rails db:reset
|
||||
|
||||
db-seed:
|
||||
docker compose exec -T backend ./bin/rails db:seed
|
||||
|
||||
db-prepare:
|
||||
docker compose exec backend ./bin/rails db:prepare
|
||||
|
||||
db-create:
|
||||
docker compose exec backend ./bin/rails db:create
|
||||
|
||||
db-drop:
|
||||
docker compose exec backend ./bin/rails db:drop
|
||||
|
||||
db-docker-recreate:
|
||||
docker compose exec database dropdb --if-exists -U postgres app_development
|
||||
docker compose exec database createdb -U postgres app_development
|
||||
|
||||
db-create-user:
|
||||
docker compose exec database psql -U postgres -c "CREATE USER app_development WITH PASSWORD 'app_development';"
|
||||
|
||||
db-grant-user:
|
||||
docker compose exec database psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE app_development TO app_development;"
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Локально: Bundler + Rails + psql к Postgres на хосте
|
||||
# ------------------------------------------------------------------------------
|
||||
local-bundle:
|
||||
cd $(API_DIR) && bundle install
|
||||
|
||||
local-rails:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails $(RAILS_CMD)
|
||||
|
||||
local-console:
|
||||
$(MAKE) local-rails RAILS_CMD=console
|
||||
|
||||
local-server:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails server -b 0.0.0.0 -p 3000
|
||||
|
||||
local-db-create:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails db:create
|
||||
|
||||
local-db-drop:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails db:drop
|
||||
|
||||
local-db-migrate:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails db:migrate
|
||||
|
||||
local-db-rollback:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails db:rollback
|
||||
|
||||
local-db-reset:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails db:reset
|
||||
|
||||
local-db-seed:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails db:seed
|
||||
|
||||
local-db-prepare:
|
||||
cd $(API_DIR) && $(LOCAL_RAILS_ENV) bin/rails db:prepare
|
||||
|
||||
local-db-console:
|
||||
$(LOCAL_PG_ENV) psql -d $(LOCAL_PG_DB)
|
||||
Reference in New Issue
Block a user