Compare commits

..

No commits in common. "4e2c99d4dd9020504b1e7cd49413fe264056ffe1" and "77872311e64fb30a903fb367602a3b622f5166df" have entirely different histories.

2 changed files with 5 additions and 33 deletions

View file

@ -133,12 +133,7 @@ config/
The `openneo_id` database is a legacy from when authentication was a separate service ("OpenNeo ID") meant to unify auth across multiple OpenNeo projects. DTI was the only project that succeeded, so the apps were merged—but the database split remains for now. The `openneo_id` database is a legacy from when authentication was a separate service ("OpenNeo ID") meant to unify auth across multiple OpenNeo projects. DTI was the only project that succeeded, so the apps were merged—but the database split remains for now.
**Implications**: **Implication**: Rails is configured for multi-database mode. User auth models live in `auth_user.rb` and connect to `openneo_id`.
- Rails is configured for multi-database mode
- User auth models live in `auth_user.rb` and connect to `openneo_id`
- **⚠️ CRITICAL**: Impress 2020 also directly accesses both `openneo_impress` and `openneo_id` databases via SQL
- **Database migrations affecting these schemas must consider Impress 2020's direct access**
- See [docs/impress-2020-dependencies.md](./docs/impress-2020-dependencies.md) for full details on this dependency
### Rails/React Hybrid ### Rails/React Hybrid
@ -154,10 +149,7 @@ The goal is to simplify this over time—either consolidate into Rails+Turbo, or
- **Main app**: VPS running Rails (Puma, MySQL) - **Main app**: VPS running Rails (Puma, MySQL)
- **Impress 2020**: Separate VPS in same datacenter (NextJS, GraphQL, headless browser for images) - **Impress 2020**: Separate VPS in same datacenter (NextJS, GraphQL, headless browser for images)
- **Shared databases**: Both services directly access the same MySQL databases over the network - Both services share the same MySQL database (Impress 2020 makes SQL calls over the network)
- `openneo_impress` - Main application data
- `openneo_id` - Authentication data
- ⚠️ **Any database schema changes must be compatible with both services**
--- ---

View file

@ -135,33 +135,14 @@ This is the most complex migration:
- **Main Rails app**: Primary VPS server, serves web traffic and API - **Main Rails app**: Primary VPS server, serves web traffic and API
- **Impress 2020**: Separate VPS in same datacenter, provides GraphQL API and image services - **Impress 2020**: Separate VPS in same datacenter, provides GraphQL API and image services
- **Databases**: Two MySQL databases on main Rails server, **both accessed directly by Impress 2020**: - **Database**: MySQL on main Rails server, accessed by both services
- `openneo_impress` - Main application data (items, pets, outfits, etc.) - **OpenNeo ID database**: Separate MySQL database (legacy, could be merged)
- `openneo_id` - Authentication data (user accounts, passwords, OAuth)
**CRITICAL**: Impress 2020 directly queries both databases via SQL. Any database consolidation must wait until Impress 2020 is retired, or both services must be updated in a coordinated deployment.
### After Full Migration ### After Full Migration
- **Single Rails app**: One VPS serving everything - **Single Rails app**: One VPS serving everything
- **Image service**: Either integrated into Rails or extracted as a simple microservice - **Image service**: Either integrated into Rails or extracted as a simple microservice
- **Single MySQL database**: Can merge `openneo_id` into `openneo_impress` once Impress 2020 is retired - **Single MySQL database**: Merge OpenNeo ID schema into main database
- See `feature/consolidate-auth-database` branch for implementation
- Migration is ready but BLOCKED on Impress 2020 retirement
## Database Consolidation Blocker
**IMPORTANT**: A database consolidation migration exists on the `feature/consolidate-auth-database` branch that would merge the `openneo_id` database into `openneo_impress`. However, **this migration is blocked** because:
1. **Impress 2020 uses both databases directly** for authentication and user queries
2. Consolidating now would break Impress 2020's login functionality
3. The migration can only proceed after Impress 2020 is fully retired
**Options to unblock:**
- **Preferred**: Complete Impress 2020 retirement first (Priority 1-3 migrations above)
- **Alternative**: Coordinate simultaneous deployment of both services during maintenance window
See `docs/database-consolidation-deployment.md` (on feature branch) for full deployment plan.
## Notes ## Notes
@ -169,7 +150,6 @@ See `docs/database-consolidation-deployment.md` (on feature branch) for full dep
- Many API calls have been successfully migrated from GraphQL to REST - Many API calls have been successfully migrated from GraphQL to REST
- The GraphQL dependency is primarily in the core outfit rendering logic - The GraphQL dependency is primarily in the core outfit rendering logic
- Support tools are the lowest priority since they're staff-only - Support tools are the lowest priority since they're staff-only
- Database consolidation is ready but awaiting Impress 2020 retirement
## See Also ## See Also