在 Typeorm 中有一个名为synchronize. 您可以将实体与数据库同步,因此无需迁移。但正如您所知,synchronize这对生产是危险的。
这里有一个问题,我应该什么时候使用该synchronize功能?想象一下最初(在开发环境中)我开始使用该synchronize功能。如果我在没有迁移的情况下在生产中禁用它,我的生产数据库将如何创建?
此外,我将在一些里程碑上交付该项目。我应该在第一个里程碑还是最后禁用它?对于长时间维护,我应该synchronize在第一个生产版本后使用禁用和迁移吗?
任何想法将不胜感激。
小智 9
TypeORM 中的迁移\n尽管同步是将实体与数据库同步的一个不错的选择,但它对于生产数据库来说是不安全的。因此,迁移可以成为生产数据库中更安全迁移的替代解决方案。\n进行迁移时,您应按照以下步骤操作。
\n1.更新Typeorm配置文件和package.json文件
\n作为防止架构同步的第一步,您应该将 Typeorm 配置文件中的同步属性更改为 false。\n然后将以下命令添加到 package.json 文件下的脚本属性中。
\n\n\n\xe2\x80\x9ctypeorm\xe2\x80\x9d:\xe2\x80\x9cts-node ./node_modules/typeorm/cli -f ./ormconfig.json\xe2\x80\x9d
\n
2. 生成迁移
\n\n\nnpm run typeorm 迁移:生成 -n
\n
您可以在此处为迁移命名。运行命令后,您将在 migrations 下找到一个名为 的迁移文件。
\n在迁移文件中,有两个函数,即up和down,其中up函数负责运行迁移,down函数负责恢复迁移。
\n3. 运行迁移
\n\n\nnpm run typeorm 迁移:运行
\n
此命令将运行您已在上述命令中创建的迁移。当您运行此命令时,它将执行迁移文件中的 up 函数。
\n4. 恢复迁移
\n\n\nnpm run typeorm 迁移:恢复
\n
此命令将恢复您已在上述命令中执行的迁移。当您运行此命令时,它将恢复您已经完成的所有迁移。基本上,它将运行迁移文件的 down 命令。
\n小智 8
同步是启动运行的一个很好的选择,但在我看来,您应该始终默认创建迁移。这是因为它将强制您运行类似于生产的开发环境,这始终是关键。您希望使您的开发环境像生产环境一样运行。
migration:generate是从实体构建迁移文件的一个很好的中间立场。