Reducing technical debt is possible, through hard work and careful planning.
Just as paying off a mortgage or a car loan requires effort and discipline, so does reducing technical debt.
Record technical debt. Think of the compromises as a charge on a credit card. When you make a trade-off during a project, you incur the debt. The debt does not “go away” with the completion of the project. It stays in the code. It stays in your database.
Work in alternate cycles of “features” and “debt reduction”. The “features” project adds new features to your product. (You're running these projects now.) The “debt reduction” project is similar to a “features” project but with different objectives. Instead of adding a feature or correcting defects, the “debt reduction” project improves the code and database design.
The temptation is to combine the two types of projects. It can be hard to justify a project which gives the business no immediately measurable improvement. This combination of “features improvement” and “debt reduction” can be done. Some folks recommend against it; some folks are adamantly against it.