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

时间:2016-01-28 19:11:16

标签: python flask sqlalchemy alembic flask-migrate

您可以获取表单数据并更改数据库架构吗?这是个好主意吗?许多迁移的默认情况是否存在缺点?数据库?

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

如果我设法构建这个,那么每次添加或删除某些内容时,不进行迁移都会构建所需的单独脚本以及随之而来的所有内容?对于这样的事情是否实用,可能会在起始数据库中添加10或20个新表?

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

1 个答案:

答案 0 :(得分:0)

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

如果您需要为用户提供添加灵活数据结构的方法,那么您应该以可能的方式设计数据库模式。例如,如果您希望用户添加自定义键/值对,则可以使用包含user_idkey_namevalue列的表格。您可能还想调查无架构数据库是否更符合您的需求。