You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS+TypeORM+PostgreSQL迁移报错:database 'admin'不存在

解决NestJS + TypeORM PostgreSQL迁移报错问题

核心问题:环境变量不匹配

你的.env文件里的变量前缀是POSTGRES_,但ormconfig.ts里引用的是DATABASE_开头的变量,导致TypeORM无法读取正确的数据库配置,只能使用默认值(默认会取当前系统用户作为数据库用户名,同时尝试连接同名数据库),这就是你先后遇到role "admin" does not exist和database "admin" does not exist的原因。

修复步骤

  1. 修正ormconfig.ts的环境变量引用
    将ormconfig.ts里的环境变量名改成和.env完全一致:

    import { DataSource } from 'typeorm';
    import * as dotenv from 'dotenv';
    import { cwd } from 'process';
    
    dotenv.config();
    
    export const dataSource = new DataSource ({
      type: 'postgres',
      host: process.env.POSTGRES_HOST,
      port: Number(process.env.POSTGRES_PORT),
      username: process.env.POSTGRES_USERNAME,
      password: process.env.POSTGRES_PASSWORD,
      database: process.env.POSTGRES_DATABASE,
      entities: [cwd() + 'src/**/*.entity{.ts,.js}'],
      migrations: [cwd() + 'src/migrations/*{.ts,.js}'],
      migrationsTableName: 'migrations',
      synchronize: false,
      dropSchema: false,
    });
    
  2. (可选)如果要使用admin用户连接
    如果你想切换到admin用户操作数据库,需要额外做两步:

    • 修改.env里的POSTGRES_USERNAME为admin,POSTGRES_PASSWORD改为你设置的pass123
    • 在PostgreSQL中创建admin数据库:
      CREATE DATABASE admin OWNER admin;
      
  3. 重新执行迁移命令
    执行生成迁移的命令:

    npm run migration:generate --name=CofffeeRefactor
    

内容的提问来源于stack exchange,提问作者Rekhy Zakaria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 11:06:26