在 Typeorm 中有一个称为 synchronize
的特性。您可以将实体与数据库同步,因此无需迁移。但是你知道 synchronize
对生产来说是危险的。
问题来了,我什么时候应该使用 synchronize
功能?想象一下(在开发环境中)我开始使用 synchronize
功能。如果我在没有迁移的情况下在生产中禁用它,应该如何创建我的生产数据库?
此外,我将在一些里程碑上交付项目。我应该在第一个里程碑还是在最后禁用它?对于长期维护,我应该在第一个生产版本之后禁用 synchronize
并使用迁移吗?
任何想法将不胜感激。
TypeORM 中的迁移 尽管同步是将实体与数据库同步的一个不错的选择,但它对于生产数据库来说是不安全的。因此,迁移可以成为生产数据库中更安全迁移的替代解决方案。进行迁移时,您应该遵循以下步骤。
1。更新 Typeorm 配置文件和 package.json 文件
作为防止模式同步的第一步,您应该在 Typeorm 配置文件中将 synchronize 属性更改为 false。然后将以下命令添加到 package.json 文件下的 scripts 属性中。
2。生成迁移
在这里,您可以为您的迁移命名。运行命令后,您会在 migrations 下找到一个名为 的迁移文件。
在迁移文件中,有两个函数,即 up 和 down,其中 up 函数负责运行迁移,down 函数负责恢复迁移。
3。运行迁移
此命令将运行您已在上述命令中创建的迁移。当您运行此命令时,它将执行迁移文件中的 up 函数。
4。还原迁移
此命令将还原您在上述命令中已执行的迁移。当您运行此命令时,它将恢复您已经完成的所有迁移。基本上,它将运行迁移文件的向下命令。