Flask-Migrate and Migrations in General : I'm relatively new to flask, python, and coding overall so please bear with me if you have the time. I'm trying to understand migrations and have some questions regarding the topic.

I'm working on a web-based asset management app, and I've had some modest success thus far. I've implemented a page that iterates through all my assets (rows) and displays them in a form with their associated row values (horsepower, voltage etc.) I've implemented a page that takes form data and adds it to the database. I've implemented a page that lets you filter all your assets by some of their values (horsepower, voltage etc.) and displays the result, as well as a search by primary_key (Asset Tag) bar in the header. To be honest so far I'm quietly impressing myself :).

Flask is great because when I was getting started and watching a few tutorial playlists I found it easier to learn than Django. There was much less overhead / pre-written code and I actually knew what each line of code was doing, and I felt I was really grasping the operation of my application in its entirety. Anyways this is all besides the point.

What I'm looking to implement now is something I feel the need to get some opinions on as I have not found much of anything regarding it online. I'd like for my customers to be able to add / remove tables, and table columns and rows. From the reading I have done I know that making schema changes is going to require migrations, so adding in that functionality would require something along the lines of writing a view that takes form data and inserts it into a function that then invokes a method of Flask-Migrate, or maybe something directly into Flask-Migrate itself?

The thing is, even if I manage to build something like this, don't migrations build the required separate scripts and everything that goes along with that each time something is added or removed? Is that a practical solution for something like this, where 10 or 20 new tables might be added from the default / shipped database?

Also, if I'm building in a functionality that allows users to add columns to a table, it will have to modify that tables class. I'm unsure if that's even possible, or a safe idea?

I may also be looking at solving this the wrong way entirely. In that case I'd really appreciate it if someone could help me out, and at least get me pointed in the right direction.

TLDR;

Can you take form data and change database schema? Is it a good idea? Is there a downside to many migrations from a 'default' database?