mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-02-03 19:03:50 +00:00
feat: add import/ directory for user database and config files
- Created import/db/ for custom SQL files - Created import/conf/ for configuration overrides - Added comprehensive README with usage examples - Created example files for NPCs and playerbots config - Updated import-database-files.sh to support new directory - Maintains backward compatibility with database-import/ - Includes .gitignore to prevent accidental commits of sensitive data
This commit is contained in:
11
import/.gitignore
vendored
Normal file
11
import/.gitignore
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Ignore all files in import directories by default
|
||||||
|
db/*
|
||||||
|
conf/*
|
||||||
|
|
||||||
|
# But keep the directory structure and examples
|
||||||
|
!db/examples/
|
||||||
|
!db/examples/**
|
||||||
|
!conf/examples/
|
||||||
|
!conf/examples/**
|
||||||
|
!.gitignore
|
||||||
|
!README.md
|
||||||
123
import/README.md
Normal file
123
import/README.md
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
# Import Directory
|
||||||
|
|
||||||
|
This directory allows you to easily import custom database files and configuration overrides into your AzerothCore server.
|
||||||
|
|
||||||
|
## 📁 Directory Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
import/
|
||||||
|
├── db/ # Database SQL files to import
|
||||||
|
└── conf/ # Configuration file overrides
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🗄️ Database Import (`import/db/`)
|
||||||
|
|
||||||
|
Place your custom SQL files here to import them into the database on server startup or deployment.
|
||||||
|
|
||||||
|
### Supported Files
|
||||||
|
|
||||||
|
- `auth.sql` - Authentication database updates
|
||||||
|
- `characters.sql` - Character database updates
|
||||||
|
- `world.sql` - World database updates
|
||||||
|
- `*.sql` - Any other SQL files will be imported automatically
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
1. Place your SQL files in `import/db/`:
|
||||||
|
```bash
|
||||||
|
cp my_custom_npcs.sql import/db/world.sql
|
||||||
|
cp my_accounts.sql import/db/auth.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Deploy or restart your server:
|
||||||
|
```bash
|
||||||
|
./scripts/bash/import-database-files.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example Files
|
||||||
|
|
||||||
|
See `import/db/examples/` for sample SQL files.
|
||||||
|
|
||||||
|
## ⚙️ Configuration Import (`import/conf/`)
|
||||||
|
|
||||||
|
Place module configuration files here to override default settings.
|
||||||
|
|
||||||
|
### Supported Files
|
||||||
|
|
||||||
|
Any `.conf` file placed here will be copied to the server's config directory, overriding the default settings.
|
||||||
|
|
||||||
|
### Common Configuration Files
|
||||||
|
|
||||||
|
- `worldserver.conf` - Core world server settings
|
||||||
|
- `authserver.conf` - Authentication server settings
|
||||||
|
- `playerbots.conf` - Playerbot module settings
|
||||||
|
- `AutoBalance.conf` - AutoBalance module settings
|
||||||
|
- Any other module `.conf` file
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
1. Create or copy a configuration file:
|
||||||
|
```bash
|
||||||
|
cp storage/config/playerbots.conf.dist import/conf/playerbots.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Edit the file with your custom settings:
|
||||||
|
```ini
|
||||||
|
AiPlayerbot.MinRandomBots = 100
|
||||||
|
AiPlayerbot.MaxRandomBots = 200
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Apply the configuration:
|
||||||
|
```bash
|
||||||
|
./scripts/bash/configure-server.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Or use the Python config tool for advanced merging:
|
||||||
|
```bash
|
||||||
|
python3 scripts/python/apply-config.py
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration Presets
|
||||||
|
|
||||||
|
Instead of manual configuration, you can use presets from `config/server-overrides.conf`:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[worldserver.conf]
|
||||||
|
Rate.XP.Kill = 2.0
|
||||||
|
Rate.XP.Quest = 2.0
|
||||||
|
|
||||||
|
[playerbots.conf]
|
||||||
|
AiPlayerbot.MinRandomBots = 100
|
||||||
|
AiPlayerbot.MaxRandomBots = 200
|
||||||
|
```
|
||||||
|
|
||||||
|
See `config/CONFIG_MANAGEMENT.md` for detailed preset documentation.
|
||||||
|
|
||||||
|
## 🔄 Automated Import
|
||||||
|
|
||||||
|
Both database and configuration imports are automatically handled during:
|
||||||
|
|
||||||
|
- **Initial Setup**: `./setup.sh`
|
||||||
|
- **Deployment**: `./deploy.sh`
|
||||||
|
- **Module Staging**: `./scripts/bash/stage-modules.sh`
|
||||||
|
|
||||||
|
## 📝 Notes
|
||||||
|
|
||||||
|
- Files in `import/` are preserved across deployments
|
||||||
|
- SQL files are only imported once (tracked by filename hash)
|
||||||
|
- Configuration files override defaults but don't replace them
|
||||||
|
- Use `.gitignore` to keep sensitive files out of version control
|
||||||
|
|
||||||
|
## 🚨 Best Practices
|
||||||
|
|
||||||
|
1. **Backup First**: Always backup your database before importing SQL
|
||||||
|
2. **Test Locally**: Test imports on a dev server first
|
||||||
|
3. **Document Changes**: Add comments to your SQL files explaining what they do
|
||||||
|
4. **Use Transactions**: Wrap large imports in transactions for safety
|
||||||
|
5. **Version Control**: Keep track of what you've imported
|
||||||
|
|
||||||
|
## 📚 Related Documentation
|
||||||
|
|
||||||
|
- [Database Management](../docs/DATABASE_MANAGEMENT.md)
|
||||||
|
- [Configuration Management](../config/CONFIG_MANAGEMENT.md)
|
||||||
|
- [Module Management](../docs/ADVANCED.md#module-management)
|
||||||
24
import/conf/examples/playerbots.conf
Normal file
24
import/conf/examples/playerbots.conf
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Example Playerbots Configuration Override
|
||||||
|
# Copy this file to import/conf/playerbots.conf and customize
|
||||||
|
|
||||||
|
[worldserver]
|
||||||
|
|
||||||
|
###################################################################################################
|
||||||
|
# PLAYERBOTS SETTINGS
|
||||||
|
###################################################################################################
|
||||||
|
|
||||||
|
# Number of random bots
|
||||||
|
AiPlayerbot.MinRandomBots = 100
|
||||||
|
AiPlayerbot.MaxRandomBots = 200
|
||||||
|
|
||||||
|
# Bot movement speed modifier (1.0 = normal speed)
|
||||||
|
AiPlayerbot.BotActiveAlone = 1
|
||||||
|
|
||||||
|
# Allow bots to form groups with players
|
||||||
|
AiPlayerbot.AllowPlayerBots = 1
|
||||||
|
|
||||||
|
# Bot gear update frequency (in seconds)
|
||||||
|
AiPlayerbot.BotGearScoreUpdateTime = 600
|
||||||
|
|
||||||
|
# Enable random bot login
|
||||||
|
AiPlayerbot.EnableRandomBots = 1
|
||||||
18
import/db/examples/custom_npcs.sql
Normal file
18
import/db/examples/custom_npcs.sql
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
-- Example: Add a custom NPC vendor
|
||||||
|
-- This file demonstrates how to add a custom NPC to your world database
|
||||||
|
|
||||||
|
-- Add the NPC template
|
||||||
|
INSERT INTO `creature_template` (`entry`, `name`, `subname`, `minlevel`, `maxlevel`, `faction`, `npcflag`, `scale`, `unit_class`, `unit_flags`, `type`, `type_flags`, `InhabitType`, `RegenHealth`, `flags_extra`, `ScriptName`)
|
||||||
|
VALUES
|
||||||
|
(900000, 'Custom Vendor', 'Example NPC', 80, 80, 35, 128, 1, 1, 0, 7, 0, 3, 1, 2, '');
|
||||||
|
|
||||||
|
-- Add the NPC spawn location (Stormwind Trade District)
|
||||||
|
INSERT INTO `creature` (`guid`, `id1`, `map`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `MovementType`)
|
||||||
|
VALUES
|
||||||
|
(900000, 900000, 0, -8833.38, 628.628, 94.0066, 0.715585, 300, 0);
|
||||||
|
|
||||||
|
-- Add some items to sell (optional)
|
||||||
|
-- INSERT INTO `npc_vendor` (`entry`, `item`, `maxcount`, `incrtime`, `ExtendedCost`)
|
||||||
|
-- VALUES
|
||||||
|
-- (900000, 2901, 0, 0, 0), -- Mining Pick
|
||||||
|
-- (900000, 5956, 0, 0, 0); -- Blacksmith Hammer
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Copy user database files or full backup archives from database-import/ to backup system
|
# Copy user database files or full backup archives from import/db/ or database-import/ to backup system
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# Source environment variables
|
# Source environment variables
|
||||||
@@ -9,7 +9,15 @@ if [ -f ".env" ]; then
|
|||||||
set +a
|
set +a
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IMPORT_DIR="./database-import"
|
# Support both new (import/db) and legacy (database-import) directories
|
||||||
|
IMPORT_DIR_NEW="./import/db"
|
||||||
|
IMPORT_DIR_LEGACY="./database-import"
|
||||||
|
|
||||||
|
# Prefer new directory if it has files, otherwise fall back to legacy
|
||||||
|
IMPORT_DIR="$IMPORT_DIR_NEW"
|
||||||
|
if [ ! -d "$IMPORT_DIR" ] || [ -z "$(ls -A "$IMPORT_DIR" 2>/dev/null)" ]; then
|
||||||
|
IMPORT_DIR="$IMPORT_DIR_LEGACY"
|
||||||
|
fi
|
||||||
STORAGE_PATH="${STORAGE_PATH:-./storage}"
|
STORAGE_PATH="${STORAGE_PATH:-./storage}"
|
||||||
STORAGE_PATH_LOCAL="${STORAGE_PATH_LOCAL:-./local-storage}"
|
STORAGE_PATH_LOCAL="${STORAGE_PATH_LOCAL:-./local-storage}"
|
||||||
BACKUP_ROOT="${STORAGE_PATH}/backups"
|
BACKUP_ROOT="${STORAGE_PATH}/backups"
|
||||||
|
|||||||
Reference in New Issue
Block a user