Python 是否可以让用户从表单创建和执行数据库迁移?

Python 是否可以让用户从表单创建和执行数据库迁移?,python,flask,sqlalchemy,alembic,flask-migrate,Python,Flask,Sqlalchemy,Alembic,Flask Migrate,您可以获取表单数据并更改数据库模式吗?这是个好主意吗?从“默认”数据库进行的许多迁移是否有缺点 我希望用户能够添加/删除表、列和行。进行模式更改需要迁移,因此添加该功能需要编写一个视图,该视图采用表单数据并将其插入到一个函数中,然后使用Flask Migrate 如果我成功地构建了这个脚本,那么每次添加或删除某个脚本时,迁移不都会构建所需的单独脚本以及与之相关的所有内容吗?对于这样的情况,可能会向启动数据库添加10或20个新表,这是否实用 如果我允许用户向表中添加列,则必须修改表的类。这是可能

您可以获取表单数据并更改数据库模式吗?这是个好主意吗?从“默认”数据库进行的许多迁移是否有缺点


我希望用户能够添加/删除表、列和行。进行模式更改需要迁移,因此添加该功能需要编写一个视图,该视图采用表单数据并将其插入到一个函数中,然后使用Flask Migrate

如果我成功地构建了这个脚本,那么每次添加或删除某个脚本时,迁移不都会构建所需的单独脚本以及与之相关的所有内容吗?对于这样的情况,可能会向启动数据库添加10或20个新表,这是否实用


如果我允许用户向表中添加列,则必须修改表的类。这是可能的,还是安全的想法?如果没有,如果有人能帮我,至少能给我指出正确的方向,我将不胜感激。

在典型的web应用程序中,部署的数据库在运行时不会更改其模式。架构仅在升级期间更改,并且只有开发人员进行这些更改。用户在应用程序上执行的操作可以添加、删除或修改行,但不能修改表或列本身

如果您需要为用户提供一种添加灵活数据结构的方法,那么您应该以一种可能的方式设计数据库模式。例如,如果希望用户添加自定义键/值对,则可以有一个包含列
user\u id
key\u name
value
的表。您可能还想调查无模式数据库是否更适合您的需要