typeorm 在生产中同步

Vah*_*afi 5 node.js typeorm

在 Typeorm 中有一个名为synchronize. 您可以将实体与数据库同步,因此无需迁移。但正如您所知,synchronize这对生产是危险的。

这里有一个问题,我应该什么时候使用该synchronize功能?想象一下最初(在开发环境中)我开始使用该synchronize功能。如果我在没有迁移的情况下在生产中禁用它,我的生产数据库将如何创建?

此外,我将在一些里程碑上交付该项目。我应该在第一个里程碑还是最后禁用它?对于长时间维护,我应该synchronize在第一个生产版本后使用禁用和迁移吗?

任何想法将不胜感激。

小智 9

TypeORM 中的迁移\n尽管同步是将实体与数据库同步的一个不错的选择,但它对于生产数据库来说是不安全的。因此,迁移可以成为生产数据库中更安全迁移的替代解决方案。\n进行迁移时,您应按照以下步骤操作。

\n

1.更新Typeorm配置文件和package.json文件

\n

作为防止架构同步的第一步,您应该将 Typeorm 配置文件中的同步属性更改为 false。\n然后将以下命令添加到 package.json 文件下的脚本属性中。

\n
\n

\xe2\x80\x9ctypeorm\xe2\x80\x9d:\xe2\x80\x9cts-node ./node_modules/typeorm/cli -f ./ormconfig.json\xe2\x80\x9d

\n
\n

2. 生成迁移

\n
\n

npm run typeorm 迁移:生成 -n

\n
\n

您可以在此处为迁移命名。运行命令后,您将在 migrations 下找到一个名为 的迁移文件。

\n

在迁移文件中,有两个函数,即up和down,其中up​​函数负责运行迁移,down函数负责恢复迁移。

\n

3. 运行迁移

\n
\n

npm run typeorm 迁移:运行

\n
\n

此命令将运行您已在上述命令中创建的迁移。当您运行此命令时,它将执行迁移文件中的 up 函数。

\n

4. 恢复迁移

\n
\n

npm run typeorm 迁移:恢复

\n
\n

此命令将恢复您已在上述命令中执行的迁移。当您运行此命令时,它将恢复您已经完成的所有迁移。基本上,它将运行迁移文件的 down 命令。

\n


小智 8

同步是启动运行的一个很好的选择,但在我看来,您应该始终默认创建迁移。这是因为它将强制您运行类似于生产的开发环境,这始终是关键。您希望使您的开发环境像生产环境一样运行。

migration:generate是从实体构建迁移文件的一个很好的中间立场。


小智 2

这也是我的问题,所以特意去搜了一下。我发现正如文档所说:

一旦投入生产,您需要将模型更改同步到数据库中。通常,一旦您在数据库中获取数据,就使用synchronize: true 进行生产模式同步是不安全的。这就是迁移可以提供帮助的地方。

我们可以意识到,一旦您的生产数据库中有有价值的数据,您应该永远关闭同步并开始在开发和生产中使用迁移

来源