2.1 KiB
2.1 KiB
description, paths
| description | paths | |||
|---|---|---|---|---|
| Database and Flyway migration rules for HealthLink-HIS |
|
Database and Migration Rules
Iron Law 2: Flyway database migration
- All new tables or new fields require a Flyway migration script
- Path:
healthlink-his-application/src/main/resources/db/migration/ - Naming:
V{version}__{description}.sql(double underscore)
Iron Law 17: Database iron laws
- Query real database before modification — confirm table structure, field constraints, indexes
- No guessing SQL — check table structure first
- Verify after SQL modification — use
EXPLAINor actual query to verify syntax - Check NOT NULL constraints — verify
is_nullablebefore INSERT/UPDATE - Check all related tables — for JOIN queries, check all related table structures and foreign keys
Iron Law 18: SQL migration restrictions
- Only
ALTER TABLE ADD COLUMNallowed - No
DROP COLUMNorRENAME COLUMN - New fields can only be appended, not deleted or renamed
Database connection
- PostgreSQL 15+ at
192.168.110.252:15432 - Database:
healthlink_his - Flyway is enabled in dev and runs on startup
- Migration conflicts will block server startup
Full chain 6-ring analysis
For bugs/requirements involving database fields, follow the complete chain:
Frontend/Page → Controller → Service → Mapper → DB/SQL → Related modules
①Input ②Validate ③Business ④Persist ⑤Storage ⑥Linkage
| Ring | Check |
|---|---|
| ① Input | Frontend has input entry (dialog, table row edit, form) |
| ② Validate | Controller parameter validation, @Valid, permission control |
| ③ Business | Service business logic, transaction boundaries, multiple Service implementation entries |
| ④ Persist | Mapper XML, DTO field mapping, type conversion |
| ⑤ Storage | Database table structure, indexes, NOT NULL constraints |
| ⑥ Linkage | Upstream (orders→nurse station), downstream (printing, billing, reports) synchronization |