mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 00:58:34 +00:00
This commit introduces major enhancements to the module installation system, database management, and configuration handling for AzerothCore deployments. ## Module System Improvements ### Module SQL Staging & Installation - Refactor module SQL staging to properly handle AzerothCore's sql/ directory structure - Fix SQL staging path to use correct AzerothCore format (sql/custom/db_*/*) - Implement conditional module database importing based on enabled modules - Add support for both cpp-modules and lua-scripts module types - Handle rsync exit code 23 (permission warnings) gracefully during deployment ### Module Manifest & Automation - Add automated module manifest generation via GitHub Actions workflow - Implement Python-based module manifest updater with comprehensive validation - Add module dependency tracking and SQL file discovery - Support for blocked modules and module metadata management ## Database Management Enhancements ### Database Import System - Add db-guard container for continuous database health monitoring and verification - Implement conditional database import that skips when databases are current - Add backup restoration and SQL staging coordination - Support for Playerbots database (4th database) in all import operations - Add comprehensive database health checking and status reporting ### Database Configuration - Implement 10 new dbimport.conf settings from environment variables: - Database.Reconnect.Seconds/Attempts for connection reliability - Updates.AllowedModules for module auto-update control - Updates.Redundancy for data integrity checks - Worker/Synch thread settings for all three core databases - Auto-apply dbimport.conf settings via auto-post-install.sh - Add environment variable injection for db-import and db-guard containers ### Backup & Recovery - Fix backup scheduler to prevent immediate execution on container startup - Add backup status monitoring script with detailed reporting - Implement backup import/export utilities - Add database verification scripts for SQL update tracking ## User Import Directory - Add new import/ directory for user-provided database files and configurations - Support for custom SQL files, configuration overrides, and example templates - Automatic import of user-provided databases and configs during initialization - Documentation and examples for custom database imports ## Configuration & Environment - Eliminate CLIENT_DATA_VERSION warning by adding default value syntax - Improve CLIENT_DATA_VERSION documentation in .env.template - Add comprehensive database import settings to .env and .env.template - Update setup.sh to handle new configuration variables with proper defaults ## Monitoring & Debugging - Add status dashboard with Go-based terminal UI (statusdash.go) - Implement JSON status output (statusjson.sh) for programmatic access - Add comprehensive database health check script - Add repair-storage-permissions.sh utility for permission issues ## Testing & Documentation - Add Phase 1 integration test suite for module installation verification - Add comprehensive documentation for: - Database management (DATABASE_MANAGEMENT.md) - Module SQL analysis (AZEROTHCORE_MODULE_SQL_ANALYSIS.md) - Implementation mapping (IMPLEMENTATION_MAP.md) - SQL staging comparison and path coverage - Module assets and DBC file requirements - Update SCRIPTS.md, ADVANCED.md, and troubleshooting documentation - Update references from database-import/ to import/ directory ## Breaking Changes - Renamed database-import/ directory to import/ for clarity - Module SQL files now staged to AzerothCore-compatible paths - db-guard container now required for proper database lifecycle management ## Bug Fixes - Fix module SQL staging directory structure for AzerothCore compatibility - Handle rsync exit code 23 gracefully during deployments - Prevent backup from running immediately on container startup - Correct SQL staging paths for proper module installation
124 lines
3.3 KiB
Markdown
124 lines
3.3 KiB
Markdown
# 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)
|