Compare commits

...

2 commits

Author SHA1 Message Date
4e2c99d4dd docs: add warnings about Impress 2020 database dependencies
Added prominent warnings in multiple locations to prevent accidental
database migrations that would break Impress 2020:

README.md:
- Added critical warning in "OpenNeo ID Database" section
- Highlighted that Impress 2020 directly accesses both databases
- Added warning in "Deployment" section about schema compatibility
- Linked to detailed documentation

docs/impress-2020-dependencies.md:
- Clarified both databases are directly accessed by Impress 2020
- Added new "Database Consolidation Blocker" section
- Documented that consolidation migration is ready but blocked
- Provided options to unblock (retire I2020 or coordinated deployment)

This ensures future developers (including future me!) are aware of this
critical dependency before proposing database schema changes.

Related: feature/consolidate-auth-database branch contains a ready-to-go
database consolidation, but it's blocked on Impress 2020 retirement.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 07:10:54 +00:00
629090a88c docs: clarify Impress 2020 database dependencies
Added critical information about database consolidation blocker:

- Impress 2020 directly accesses BOTH openneo_impress and openneo_id databases
- Any database consolidation must wait until Impress 2020 is retired
- Database migration is ready on feature/consolidate-auth-database branch
  but is blocked on this dependency

This ensures we don't accidentally deploy the database consolidation
before addressing the Impress 2020 dependency, which would break
authentication for users accessing the site through Impress 2020.

Updated sections:
- Deployment Architecture: Clarified both databases are accessed by I2020
- After Full Migration: Noted database consolidation is ready but blocked
- Added new "Database Consolidation Blocker" section with details

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 07:09:11 +00:00
2 changed files with 33 additions and 5 deletions

View file

@ -133,7 +133,12 @@ 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.
**Implication**: Rails is configured for multi-database mode. User auth models live in `auth_user.rb` and connect to `openneo_id`.
**Implications**:
- 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
@ -149,7 +154,10 @@ The goal is to simplify this over time—either consolidate into Rails+Turbo, or
- **Main app**: VPS running Rails (Puma, MySQL)
- **Impress 2020**: Separate VPS in same datacenter (NextJS, GraphQL, headless browser for images)
- Both services share the same MySQL database (Impress 2020 makes SQL calls over the network)
- **Shared databases**: Both services directly access the same MySQL databases 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,14 +135,33 @@ This is the most complex migration:
- **Main Rails app**: Primary VPS server, serves web traffic and API
- **Impress 2020**: Separate VPS in same datacenter, provides GraphQL API and image services
- **Database**: MySQL on main Rails server, accessed by both services
- **OpenNeo ID database**: Separate MySQL database (legacy, could be merged)
- **Databases**: Two MySQL databases on main Rails server, **both accessed directly by Impress 2020**:
- `openneo_impress` - Main application data (items, pets, outfits, etc.)
- `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
- **Single Rails app**: One VPS serving everything
- **Image service**: Either integrated into Rails or extracted as a simple microservice
- **Single MySQL database**: Merge OpenNeo ID schema into main database
- **Single MySQL database**: Can merge `openneo_id` into `openneo_impress` once Impress 2020 is retired
- 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
@ -150,6 +169,7 @@ This is the most complex migration:
- Many API calls have been successfully migrated from GraphQL to REST
- The GraphQL dependency is primarily in the core outfit rendering logic
- Support tools are the lowest priority since they're staff-only
- Database consolidation is ready but awaiting Impress 2020 retirement
## See Also