是否可以让用户从表单创建和执行数据库迁移?
Is it possible to let users create and perform database migrations from a form?
你能获取表单数据并更改数据库架构吗?这是个好主意吗?从 'default' 数据库进行多次迁移是否有缺点?
我希望用户能够添加/删除 table、列和行。进行架构更改需要迁移,因此添加该功能需要编写一个视图,该视图采用表单数据并将其插入到一个函数中,然后使用 Flask-Migrate。
如果我设法构建它,每次添加或删除某些内容时,迁移不会构建所需的单独脚本以及随之而来的所有内容吗?这对于像这样的东西是否实用,其中 10 或 20 个新的 table 可能会添加到起始数据库?
如果我允许用户向 table 添加列,则必须修改 table 的 class。这是可能的,还是一个安全的想法?如果没有,如果有人能帮助我,至少让我指出正确的方向,我将不胜感激。
在典型的 Web 应用程序中,部署的数据库不会在运行时更改其模式。架构仅在升级期间更改,并且只有开发人员进行这些更改。用户对应用程序执行的操作可以添加、删除或修改行,但不能修改 table 或列本身。
如果您需要为用户提供一种添加灵活数据结构的方法,那么您应该以可行的方式设计数据库模式。例如,如果您希望用户添加自定义 key/value 对,您可以使用包含 user_id
、key_name
和 value
列的 table。您可能还想调查无模式数据库是否更适合您的需求。
你能获取表单数据并更改数据库架构吗?这是个好主意吗?从 'default' 数据库进行多次迁移是否有缺点?
我希望用户能够添加/删除 table、列和行。进行架构更改需要迁移,因此添加该功能需要编写一个视图,该视图采用表单数据并将其插入到一个函数中,然后使用 Flask-Migrate。
如果我设法构建它,每次添加或删除某些内容时,迁移不会构建所需的单独脚本以及随之而来的所有内容吗?这对于像这样的东西是否实用,其中 10 或 20 个新的 table 可能会添加到起始数据库?
如果我允许用户向 table 添加列,则必须修改 table 的 class。这是可能的,还是一个安全的想法?如果没有,如果有人能帮助我,至少让我指出正确的方向,我将不胜感激。
在典型的 Web 应用程序中,部署的数据库不会在运行时更改其模式。架构仅在升级期间更改,并且只有开发人员进行这些更改。用户对应用程序执行的操作可以添加、删除或修改行,但不能修改 table 或列本身。
如果您需要为用户提供一种添加灵活数据结构的方法,那么您应该以可行的方式设计数据库模式。例如,如果您希望用户添加自定义 key/value 对,您可以使用包含 user_id
、key_name
和 value
列的 table。您可能还想调查无模式数据库是否更适合您的需求。