/
soalko
/
map-recommendations-project
Обзор
Документация
Войти
/
soalko
/
map-recommendations-project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
init_db.sql
63 строки
3 KB
soldatov_a
initial commit
19 дек 2025, 01:45
19 дек 2025, 01:45
1db9792
Код
Авторство
О чём код?
-- init_db.sql -- Инициализация базы данных для сервиса интересных мест -- Подключаемся к базе данных (если запускаем из командной строки) \c places_db; -- Включаем необходимые расширения PostgreSQL CREATE EXTENSION IF NOT EXISTS postgis; CREATE EXTENSION IF NOT EXISTS postgis_topology; CREATE EXTENSION IF NOT EXISTS hstore; -- для хранения тегов -- Создаем таблицу мест (альтернативный вариант, если не используется SQLAlchemy) -- Если используете SQLAlchemy, эту таблицу можно не создавать здесь -- CREATE TABLE IF NOT EXISTS places ( -- id SERIAL PRIMARY KEY, -- osm_id BIGINT, -- name VARCHAR(255), -- category VARCHAR(100), -- subcategory VARCHAR(100), -- amenity VARCHAR(100), -- shop VARCHAR(100), -- tourism VARCHAR(100), -- leisure VARCHAR(100), -- tags JSONB, -- address TEXT, -- geometry geometry(Point, 4326), -- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- ); -- Создаем таблицу маршрутов (альтернативный вариант) -- CREATE TABLE IF NOT EXISTS routes ( -- id SERIAL PRIMARY KEY, -- start_point geometry(Point, 4326), -- end_point geometry(Point, 4326), -- path geometry(LineString, 4326), -- distance FLOAT, -- duration FLOAT, -- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- ); -- Создаем индексы для ускорения поиска -- CREATE INDEX IF NOT EXISTS idx_places_geometry ON places USING GIST(geometry); -- CREATE INDEX IF NOT EXISTS idx_places_category ON places(category); -- CREATE INDEX IF NOT EXISTS idx_places_name ON places(name); -- CREATE INDEX IF NOT EXISTS idx_places_amenity ON places(amenity); -- Создаем индексы для таблицы маршрутов -- CREATE INDEX IF NOT EXISTS idx_routes_start_point ON routes USING GIST(start_point); -- CREATE INDEX IF NOT EXISTS idx_routes_end_point ON routes USING GIST(end_point); -- Создаем пользователя для приложения (опционально) -- CREATE USER app_user WITH PASSWORD 'app_password'; -- GRANT CONNECT ON DATABASE places_db TO app_user; -- GRANT USAGE ON SCHEMA public TO app_user; -- GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user; -- GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO app_user; -- Выводим информацию о созданных расширениях SELECT extname, extversion FROM pg_extension WHERE extname IN ('postgis', 'postgis_topology'); -- Проверяем, что PostGIS работает SELECT PostGIS_Version();