chore: clean publish artifacts and add sources
This commit is contained in:
164
migrate-prepare.sh
Executable file
164
migrate-prepare.sh
Executable file
@@ -0,0 +1,164 @@
|
||||
#!/bin/bash
|
||||
# SkyArtShop Migration Preparation Script
|
||||
# Run this on the SOURCE server
|
||||
|
||||
set -e
|
||||
|
||||
echo "========================================="
|
||||
echo " SkyArtShop Migration - Preparation"
|
||||
echo "========================================="
|
||||
echo ""
|
||||
|
||||
# Configuration
|
||||
BACKUP_DIR=~/skyartshop-backup
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
APP_DIR=/var/www/SkyArtShop
|
||||
|
||||
# Colors for output
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Create backup directory
|
||||
echo -e "${YELLOW}[1/6] Creating backup directory...${NC}"
|
||||
mkdir -p $BACKUP_DIR/configs
|
||||
echo -e "${GREEN}✓ Backup directory created: $BACKUP_DIR${NC}"
|
||||
echo ""
|
||||
|
||||
# Export MongoDB
|
||||
echo -e "${YELLOW}[2/6] Exporting MongoDB database...${NC}"
|
||||
if command -v mongodump &> /dev/null; then
|
||||
mongodump --db=SkyArtShopDB --out=$BACKUP_DIR/mongodb-dump
|
||||
cd $BACKUP_DIR
|
||||
tar -czf mongodb-backup-$DATE.tar.gz mongodb-dump/
|
||||
rm -rf mongodb-dump/
|
||||
|
||||
# Get database stats
|
||||
DB_SIZE=$(du -sh mongodb-backup-$DATE.tar.gz | cut -f1)
|
||||
echo -e "${GREEN}✓ MongoDB backup created: mongodb-backup-$DATE.tar.gz ($DB_SIZE)${NC}"
|
||||
else
|
||||
echo -e "${RED}✗ MongoDB not found! Skipping database backup.${NC}"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Package application files
|
||||
echo -e "${YELLOW}[3/6] Packaging application files...${NC}"
|
||||
if [ -d "$APP_DIR" ]; then
|
||||
cd /var/www
|
||||
tar --exclude='SkyArtShop/bin' \
|
||||
--exclude='SkyArtShop/obj' \
|
||||
--exclude='SkyArtShop/publish/runtimes' \
|
||||
--exclude='SkyArtShop/.vs' \
|
||||
--exclude='SkyArtShop/.git' \
|
||||
--exclude='SkyArtShop/node_modules' \
|
||||
-czf $BACKUP_DIR/skyartshop-app-$DATE.tar.gz SkyArtShop/
|
||||
|
||||
APP_SIZE=$(du -sh $BACKUP_DIR/skyartshop-app-$DATE.tar.gz | cut -f1)
|
||||
echo -e "${GREEN}✓ Application packaged: skyartshop-app-$DATE.tar.gz ($APP_SIZE)${NC}"
|
||||
else
|
||||
echo -e "${RED}✗ Application directory not found: $APP_DIR${NC}"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Save configuration files
|
||||
echo -e "${YELLOW}[4/6] Backing up configuration files...${NC}"
|
||||
|
||||
# Nginx config
|
||||
if [ -f /etc/nginx/sites-available/skyartshop ]; then
|
||||
cp /etc/nginx/sites-available/skyartshop $BACKUP_DIR/configs/nginx-skyartshop.conf
|
||||
echo -e "${GREEN}✓ Nginx config backed up${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠ No Nginx config found${NC}"
|
||||
fi
|
||||
|
||||
# Systemd service
|
||||
if [ -f /etc/systemd/system/skyartshop.service ]; then
|
||||
cp /etc/systemd/system/skyartshop.service $BACKUP_DIR/configs/skyartshop.service
|
||||
echo -e "${GREEN}✓ Systemd service backed up${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠ No systemd service found${NC}"
|
||||
fi
|
||||
|
||||
# Save environment info
|
||||
cat > $BACKUP_DIR/configs/environment-info.txt << EOF
|
||||
Migration Package Information
|
||||
==============================
|
||||
Created: $(date)
|
||||
Source Server: $(hostname)
|
||||
IP Address: $(hostname -I | awk '{print $1}')
|
||||
|
||||
.NET Version:
|
||||
$(dotnet --version 2>/dev/null || echo "Not installed")
|
||||
|
||||
MongoDB Version:
|
||||
$(mongod --version 2>/dev/null | head -1 || echo "Not installed")
|
||||
|
||||
OS Information:
|
||||
$(cat /etc/os-release | grep PRETTY_NAME)
|
||||
|
||||
Application Path: $APP_DIR
|
||||
Backup Date: $DATE
|
||||
EOF
|
||||
|
||||
echo -e "${GREEN}✓ Environment info saved${NC}"
|
||||
echo ""
|
||||
|
||||
# Create manifest
|
||||
echo -e "${YELLOW}[5/6] Creating migration manifest...${NC}"
|
||||
cat > $BACKUP_DIR/MANIFEST.txt << EOF
|
||||
========================================
|
||||
SkyArtShop Migration Package
|
||||
========================================
|
||||
|
||||
Created: $(date)
|
||||
Source Server: $(hostname)
|
||||
Package ID: $DATE
|
||||
|
||||
CONTENTS:
|
||||
---------
|
||||
$(ls -lh $BACKUP_DIR/*.tar.gz 2>/dev/null | awk '{print " " $9 " (" $5 ")"}')
|
||||
|
||||
Configuration Files:
|
||||
$(ls -1 $BACKUP_DIR/configs/ | sed 's/^/ - /')
|
||||
|
||||
Total Package Size: $(du -sh $BACKUP_DIR | cut -f1)
|
||||
|
||||
NEXT STEPS:
|
||||
-----------
|
||||
1. Transfer this entire directory to the new server:
|
||||
scp -r ~/skyartshop-backup username@new-server-ip:/home/username/
|
||||
|
||||
2. On the new server, run:
|
||||
cd /var/www/SkyArtShop
|
||||
bash migrate-restore.sh
|
||||
|
||||
For detailed instructions, see:
|
||||
MIGRATION_PACKAGE.md
|
||||
|
||||
========================================
|
||||
EOF
|
||||
|
||||
echo -e "${GREEN}✓ Manifest created${NC}"
|
||||
echo ""
|
||||
|
||||
# Display summary
|
||||
echo -e "${YELLOW}[6/6] Migration package ready!${NC}"
|
||||
echo ""
|
||||
echo "========================================="
|
||||
echo " 📦 MIGRATION PACKAGE SUMMARY"
|
||||
echo "========================================="
|
||||
cat $BACKUP_DIR/MANIFEST.txt
|
||||
echo ""
|
||||
echo -e "${GREEN}✓ All files backed up successfully!${NC}"
|
||||
echo ""
|
||||
echo "Next Steps:"
|
||||
echo "1. Transfer the backup to new server:"
|
||||
echo -e " ${YELLOW}scp -r $BACKUP_DIR username@new-server-ip:/home/username/${NC}"
|
||||
echo ""
|
||||
echo "2. Or create a single archive:"
|
||||
echo -e " ${YELLOW}cd ~ && tar -czf skyartshop-migration-$DATE.tar.gz skyartshop-backup/${NC}"
|
||||
echo ""
|
||||
echo "3. On the new server, extract and run migrate-restore.sh"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user