【问题标题】:TypeORM - generate migrations from existings entitesTypeORM - 从现有实体生成迁移
【发布时间】:2021-10-17 04:34:34
【问题描述】:

有一个我去年一直在开发的 nest.js/typeorm/postgres 应用程序。一直在创建/添加/删除表/列,但从未使用过迁移。

现在是部署的时候了,每当我运行 typeorm migration:generate 时,都会为我仅从 1 或 2 个表中添加/删除的最后一列创建一个迁移文件。

是否可以为已属于我的数据库架构的所有现有实体生成迁移?

基本上,up 将使用 FK、索引、约束等创建每个表,而 down 将放弃所有这些。

注意:我注意到this 的帖子。这是解决我的问题的正确方法吗?

【问题讨论】:

    标签: postgresql nestjs typeorm


    【解决方案1】:

    我通过以下方式解决了这个问题:

    1. 在 postgres 中删除并重新创建我的数据库
    2. npm run typeorm:reset
    3. 然后npm run typeorm:migrate
    4. 然后typeorm:run

    脚本供参考

    package.json

        "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js",
        "typeorm:sync": "npm run typeorm schema:sync",
        "typeorm:drop": "npm run typeorm schema:drop",
        "typeorm:reset": "npm run typeorm:drop && npm run typeorm:sync",
        "typeorm:migrate": "env NODE_ENV=development npm run typeorm migration:generate -- -n",
        "typeorm:create": "env NODE_ENV=development npm run typeorm migration:create -- -n",
        "typeorm:run": "ts-node -r tsconfig-paths/register $(yarn bin typeorm) migration:run"
    

    ormconfig.js

    const config = {
      type: 'postgres',
      host: process.env.RDS_HOST,
      port: Number(process.env.RDS_PORT),
      username: process.env.RDS_USERNAME,
      password: process.env.RDS_PASSWORD,
      database: process.env.RDS_DB_NAME,
      synchronize: process.env.NODE_ENV === 'production' ? false : true,
      dropSchema: false,
      logging: process.env.NODE_ENV === 'development' ? true : false,
      entities: [`${__dirname}/src/**/**.entity{.ts,.js}`],
      migrations: [`${__dirname}/src/migrations/**/*{.ts,.js}`],
      cli: {
        migrationsDir: 'src/migrations',
      },
    }
    
    module.exports = config
    

    注意:

    • 在我的 typeORM 脚本中,我使用 tsconfig-paths/register,因为我在我的 *.entity.ts 文件中使用的 tsconfig.json 文件中有路径别名。

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 2019-11-17
      • 2021-05-23
      • 2022-11-14
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      相关资源
      最近更新 更多