87 lines
2.2 KiB
Markdown
87 lines
2.2 KiB
Markdown
# Chat Database Migration Guide
|
|
|
|
This guide will help you migrate your chat database from the current server to a new PostgreSQL server.
|
|
|
|
## Overview
|
|
Your chat system uses:
|
|
- Database: `rocketchat_converted` (PostgreSQL)
|
|
- Main tables: users, message, room, uploads, avatars, subscription
|
|
- File storage: db-convert/db/files/ directory with uploads and avatars
|
|
- Environment configuration for database connection
|
|
|
|
## Migration Steps
|
|
|
|
### 1. Pre-Migration Setup
|
|
|
|
On your **new server**, ensure PostgreSQL is installed and running:
|
|
```bash
|
|
# Install PostgreSQL (if not already done)
|
|
sudo apt update
|
|
sudo apt install postgresql postgresql-contrib
|
|
|
|
# Start PostgreSQL service
|
|
sudo systemctl start postgresql
|
|
sudo systemctl enable postgresql
|
|
```
|
|
|
|
### 2. Create Database Schema on New Server
|
|
|
|
Run the provided migration script:
|
|
```bash
|
|
# On new server
|
|
sudo -u postgres psql -f create-new-database.sql
|
|
```
|
|
|
|
### 3. Export Data from Current Server
|
|
|
|
Run the export script:
|
|
```bash
|
|
# On current server
|
|
./export-chat-data.sh
|
|
```
|
|
|
|
This will create:
|
|
- `chat-schema.sql` - Database schema
|
|
- `chat-data.sql` - All table data
|
|
- `chat-files.tar.gz` - All uploaded files and avatars
|
|
|
|
### 4. Transfer Data to New Server
|
|
|
|
```bash
|
|
# Copy files to new server
|
|
scp chat-schema.sql chat-data.sql chat-files.tar.gz user@new-server:/tmp/
|
|
```
|
|
|
|
### 5. Import Data on New Server
|
|
|
|
```bash
|
|
# On new server
|
|
./import-chat-data.sh
|
|
```
|
|
|
|
### 6. Update Configuration
|
|
|
|
Update your environment variables to point to the new database server.
|
|
|
|
### 7. Verify Migration
|
|
|
|
Run the verification script to ensure everything transferred correctly:
|
|
```bash
|
|
node verify-migration.js
|
|
```
|
|
|
|
## Files Provided
|
|
|
|
1. `create-new-database.sql` - Creates database and user on new server
|
|
2. `export-chat-data.sh` - Exports data from current server
|
|
3. `import-chat-data.sh` - Imports data to new server
|
|
4. `verify-migration.js` - Verifies data integrity
|
|
5. `update-config-template.env` - Template for new configuration
|
|
|
|
## Important Notes
|
|
|
|
- **Backup first**: Always backup your current database before migration
|
|
- **Downtime**: Plan for application downtime during migration
|
|
- **File permissions**: Ensure file permissions are preserved during transfer
|
|
- **Network access**: Ensure new server can accept connections from your application
|