I am not a very advanced user of the Strapi Content Editor tool, so it often happens to me to realize that I made a mistake several steps ago.
Before I became aware of the fact that the default Content Builder’s way of persisting its information is to create a connection with and then use the chosen database (one of SQLite, PostgreSQL MySQL MariaDB MongoDB) and store the data on each
save command, I behaved as using a code editor. So, I would reverse my actions, blindly crossing over the places where I used the Save button, never thinking about the interactions between the Editor and the underlying database. I simply believed that the Editor is designed to supports forward and backward actions as if the database does not exist.
If you are like me, it is likely that you do not enjoy having to deal with SQL (Structured Query Language). Transforming complex data objects (as they existed in computer memory) into rectangular tables seems “unnatural” and I always tried to avoid it. By the time I encountered MongoDB, my reluctance to become good enough to handle databases, that even its NoSQL character did not pull me back.
Once I learned that the Editor is not going to patch the database when crossing any of the database state changes, I do not dare to do anything else but start the Builder from scratch each time I discover that I need to rename a table, add a column, etc.
Is there a member of Strapy community or the core team that finds this issue sufficiently significant to educate everyone on best practices of using the Content Builder to modify any existing Strapi project, practices that would ensure not to have garbage in the database?
I still believe that the perfect Content Editor should handle all of keeping the Builder and database states in sync. At the same time, I also know that this is a nontrivial exercise