first-update
This commit is contained in:
70
easy-dataset-main/docker-entrypoint.sh
Normal file
70
easy-dataset-main/docker-entrypoint.sh
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# Colors for output
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Define paths
|
||||
PRISMA_DIR="/app/prisma"
|
||||
PRISMA_TEMPLATE_DIR="/app/prisma-template"
|
||||
DB_FILE="$PRISMA_DIR/db.sqlite"
|
||||
LOCAL_DB_DIR="/app/local-db"
|
||||
|
||||
echo "${GREEN}=== Easy Dataset Database Initialization ===${NC}"
|
||||
|
||||
# Create prisma directory if it doesn't exist
|
||||
if [ ! -d "$PRISMA_DIR" ]; then
|
||||
echo "${YELLOW}Creating prisma directory...${NC}"
|
||||
mkdir -p "$PRISMA_DIR"
|
||||
fi
|
||||
|
||||
# Check if database file exists
|
||||
if [ ! -f "$DB_FILE" ]; then
|
||||
echo "${YELLOW}Database file not found at: $DB_FILE${NC}"
|
||||
|
||||
# Check if local-db has files (possible configuration issue)
|
||||
if [ -d "$LOCAL_DB_DIR" ] && [ -n "$(ls -A $LOCAL_DB_DIR 2>/dev/null | grep -v 'empty.txt')" ]; then
|
||||
echo "${YELLOW}Note: local-db contains files but database is missing.${NC}"
|
||||
echo "${YELLOW}If you have existing data, ensure prisma volume is mounted.${NC}"
|
||||
fi
|
||||
|
||||
# Safety check: only initialize if directory is completely empty
|
||||
if [ -z "$(ls -A $PRISMA_DIR 2>/dev/null)" ]; then
|
||||
# Directory is completely empty - safe to initialize
|
||||
echo "${GREEN}Prisma directory is empty. Initializing from template...${NC}"
|
||||
|
||||
if [ -d "$PRISMA_TEMPLATE_DIR" ]; then
|
||||
cp -r "$PRISMA_TEMPLATE_DIR"/* "$PRISMA_DIR/"
|
||||
echo "${GREEN}Database initialized from template!${NC}"
|
||||
else
|
||||
echo "${YELLOW}No template found. Running prisma db push...${NC}"
|
||||
cd /app
|
||||
pnpm prisma db push --accept-data-loss
|
||||
echo "${GREEN}Database created successfully!${NC}"
|
||||
fi
|
||||
else
|
||||
# Directory is not empty but database is missing - error out
|
||||
echo "${RED}ERROR: Database file missing but prisma directory is not empty!${NC}"
|
||||
echo "${YELLOW}This may indicate a configuration problem.${NC}"
|
||||
echo ""
|
||||
echo "${YELLOW}Files in $PRISMA_DIR:${NC}"
|
||||
ls -lh "$PRISMA_DIR"
|
||||
echo ""
|
||||
echo "${YELLOW}Please either:${NC}"
|
||||
echo " 1. Remove all files in prisma directory to re-initialize"
|
||||
echo " 2. Or run: pnpm prisma db push --accept-data-loss"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "${GREEN}Database file exists: $DB_FILE${NC}"
|
||||
fi
|
||||
|
||||
echo "${GREEN}=== Database Ready! Starting application... ===${NC}"
|
||||
echo ""
|
||||
|
||||
# Execute the command passed to the container
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user