在 LoopBack 4 中迁移数据库后设置新字段的值
Set new fields' value after database migration in LoopBack 4
Loopback 有简单的方法来处理数据库迁移,这与使用的方法不同,例如 knex.js。在 docs about migration 它说要改变 table 模式你只需要编辑你的模型,环回将自动更新(在自动更新的情况下)或重新创建(在自动迁移的情况下)tables.
但这是一种情况:
假设我有一个正在生产中的项目。在数据库中,我有 table users
字段:
first_name: string
last_name: string
然后我想将架构更改为
full_name: string
在环回的情况下获得这个模式我只需要编辑模型。但是如何为现有用户设置 full_name
呢? method that described in docs 让我感到困惑,原因如下:
如果我创建字段更新脚本(也删除以前的脚本以避免错误)并且在我的模型每次更改后 运行 迁移,它就会工作。
但是,如果我必须在部署到生产环境之前在我的本地环境中执行多次迁移(以及设置新值的脚本)怎么办?
感谢您的帮助。
LoopBack 提供的自动 update/recreate 功能将始终限于简单的用例,例如添加新列。一旦您需要迁移更高级的架构更改,例如重命名列,您将始终必须编写自定义迁移步骤 - 这就是 Knex 从我听说的地方闪耀的地方。
我们已经知道这个问题,并在下一期中进行了讨论 - 欢迎加入讨论!
Its working if I create field-updating script (also removing the previous ones to avoid errors) and run migration after every change in my models.
But what if I have to do several migrations (also scripts that set new values) in my local environment before deploying to production?
就我个人而言,我在 Evolutionary Database Design 方面有丰富的经验,其中每个迁移步骤都分配了一个唯一的更改 ID,并且有一个新的 table 跟踪应用的 changes/migration。
loopback4-migration 扩展可用于处理更新现有数据库实体等任务。它提供了一个通用接口来实现自定义迁移脚本,并根据应用程序版本与数据库版本自动处理数据库的版本控制和脚本的执行。
Loopback 有简单的方法来处理数据库迁移,这与使用的方法不同,例如 knex.js。在 docs about migration 它说要改变 table 模式你只需要编辑你的模型,环回将自动更新(在自动更新的情况下)或重新创建(在自动迁移的情况下)tables.
但这是一种情况:
假设我有一个正在生产中的项目。在数据库中,我有 table users
字段:
first_name: string
last_name: string
然后我想将架构更改为
full_name: string
在环回的情况下获得这个模式我只需要编辑模型。但是如何为现有用户设置 full_name
呢? method that described in docs 让我感到困惑,原因如下:
如果我创建字段更新脚本(也删除以前的脚本以避免错误)并且在我的模型每次更改后 运行 迁移,它就会工作。
但是,如果我必须在部署到生产环境之前在我的本地环境中执行多次迁移(以及设置新值的脚本)怎么办?
感谢您的帮助。
LoopBack 提供的自动 update/recreate 功能将始终限于简单的用例,例如添加新列。一旦您需要迁移更高级的架构更改,例如重命名列,您将始终必须编写自定义迁移步骤 - 这就是 Knex 从我听说的地方闪耀的地方。
我们已经知道这个问题,并在下一期中进行了讨论 - 欢迎加入讨论!
Its working if I create field-updating script (also removing the previous ones to avoid errors) and run migration after every change in my models.
But what if I have to do several migrations (also scripts that set new values) in my local environment before deploying to production?
就我个人而言,我在 Evolutionary Database Design 方面有丰富的经验,其中每个迁移步骤都分配了一个唯一的更改 ID,并且有一个新的 table 跟踪应用的 changes/migration。
loopback4-migration 扩展可用于处理更新现有数据库实体等任务。它提供了一个通用接口来实现自定义迁移脚本,并根据应用程序版本与数据库版本自动处理数据库的版本控制和脚本的执行。