fix
This commit is contained in:
65
scripts/init.sql
Normal file
65
scripts/init.sql
Normal file
@@ -0,0 +1,65 @@
|
||||
-- TYAPI Server Database Initialization Script
|
||||
-- This script runs when PostgreSQL container starts for the first time
|
||||
|
||||
-- Create development database if it doesn't exist
|
||||
-- Note: tyapi_dev is already created by POSTGRES_DB environment variable
|
||||
|
||||
-- Create test database for running tests
|
||||
-- Note: Skip database creation in init script, handle in application if needed
|
||||
|
||||
-- Create production database (for reference)
|
||||
-- CREATE DATABASE tyapi_prod;
|
||||
|
||||
-- Connect to development database
|
||||
\c tyapi_dev;
|
||||
|
||||
-- Enable necessary extensions
|
||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||
|
||||
CREATE EXTENSION IF NOT EXISTS "pg_trgm";
|
||||
|
||||
CREATE EXTENSION IF NOT EXISTS "btree_gin";
|
||||
|
||||
-- Create schemas for better organization
|
||||
CREATE SCHEMA IF NOT EXISTS public;
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS logs;
|
||||
|
||||
CREATE SCHEMA IF NOT EXISTS metrics;
|
||||
|
||||
-- Set search path
|
||||
SET search_path TO public, logs, metrics;
|
||||
|
||||
-- Test database setup will be handled by application migrations
|
||||
-- when needed, since we don't create it in this init script
|
||||
|
||||
-- Continue with development database setup
|
||||
-- (already connected to tyapi_dev)
|
||||
|
||||
-- Create application-specific roles (optional)
|
||||
-- CREATE ROLE tyapi_app WITH LOGIN PASSWORD 'app_password';
|
||||
-- CREATE ROLE tyapi_readonly WITH LOGIN PASSWORD 'readonly_password';
|
||||
|
||||
-- Grant permissions
|
||||
-- GRANT CONNECT ON DATABASE tyapi_dev TO tyapi_app;
|
||||
-- GRANT USAGE ON SCHEMA public TO tyapi_app;
|
||||
-- GRANT CREATE ON SCHEMA public TO tyapi_app;
|
||||
|
||||
-- Initial seed data can be added here
|
||||
-- This will be replaced by proper migrations in the application
|
||||
|
||||
-- Log the initialization
|
||||
-- Note: pg_stat_statements extension may not be available, skip this insert
|
||||
|
||||
-- Create a simple health check function
|
||||
CREATE OR REPLACE FUNCTION health_check()
|
||||
RETURNS json AS $$
|
||||
BEGIN
|
||||
RETURN json_build_object(
|
||||
'status', 'healthy',
|
||||
'database', current_database(),
|
||||
'timestamp', now(),
|
||||
'version', version()
|
||||
);
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
Reference in New Issue
Block a user