After a few years, my startup no longer starts. The main (MySQL) database has grown and grown, as well as the processes and people working with it. Although data and processes are - to some extent - documented (ER and process diagrams), their relationships are not.
No one dares to change the database field anymore, because there is armageddon hiding behind an unknown business process that may depend on it. This causes programmers to add new fields to reuse existing ones. Oh no! Technical decay will kill us.
The solution is obvious: documentation on the relationships between processes and columns, which are easily greppable for columns. However, while this seems like a daunting task, I donβt know where to start. Ideally, I am looking for a tool or workflow that will help me synchronize the situation. Ideally, the documentation is contained in the database (comment field?).
Context: we have about 300 processes interacting with our database, running on 5 management servers written in Perl, Python and PHP (300K LoC). I have 50 tables and a total of 300 columns.
Edit: 80% of our code uses ORM to access the database, so I can change the ORM level to record access to columns as a start.
NB. Other issues of database documentation on SO relate to ER documentation, while I'm looking for a system that supports documentation covering both the database and the application domain. TIA!
source
share