• 迁移的工作原理

    迁移的工作原理

    一旦上线生产环境,你将需要将模型更改同步到数据库中。通常在数据库中获取数据后,使用synchronize:true进行生产模式同步是不安全的。 因此这时候使用迁移,可以解决此类问题。

    迁移只是一个带有 SQL 查询的文件,用于更新数据库架构并将新更改应用于现有数据库。

    假设你已经有一个数据库和一个 post 实体:

    1. import { Entity, Column, PrimaryGeneratedColumn } from "typeorm";
    2. @Entity()
    3. export class Post {
    4. @PrimaryGeneratedColumn()
    5. id: number;
    6. @Column()
    7. title: string;
    8. @Column()
    9. text: string;
    10. }

    这些实体在生产环境中运行了几个月而没有任何变化。数据库中产生了有几千个 posts。

    现在你需要创建一个新版本并将title重命名为name。你会怎么做?

    你需要使用以下 sql 查询(postgres dialect)创建新的迁移:

    1. ALTER TABLE "post" RENAME COLUMN "title" TO "name";

    运行此 sql 查询后,你的数据库架构就可以使用新的代码库了。TypeORM 提供了一个可以编写此类 SQL 查询并在需要时运行它们的位置。这个位置就叫”migrations”。