3. Make some method of running this code + nginx config locally.
4. Add a test framework which simulates real traffic you see on the app and make sure the DB contains the right thing.
5. Make a staging environment which mirrors traffic from prod and run changes there for ~1 week and manually audit things to make sure it looks right. (You'll only do those until you feel safe)
Now you can feel safe chanting things! You can tackle problems as they come in. Focus 10% of the time of devs in new features. Focus 90% on reducing tech debt.
Lots of dead code? Tackle that.
Package management hard? Migrate to composer.
Don't do everything up front. Just make sure you have a way to change the codes, test those changes, then push them to prod / staging.
2. Find out the "real version" of the sql schema.
3. Make some method of running this code + nginx config locally.
4. Add a test framework which simulates real traffic you see on the app and make sure the DB contains the right thing.
5. Make a staging environment which mirrors traffic from prod and run changes there for ~1 week and manually audit things to make sure it looks right. (You'll only do those until you feel safe)
Now you can feel safe chanting things! You can tackle problems as they come in. Focus 10% of the time of devs in new features. Focus 90% on reducing tech debt.
Lots of dead code? Tackle that.
Package management hard? Migrate to composer.
Don't do everything up front. Just make sure you have a way to change the codes, test those changes, then push them to prod / staging.