postgresql 错误:无法连接到数据库!

r8xiu3jd  于 12个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(161)

我在启动Nest应用程序时一直面临这个错误:

[Nest] 53044 - 08/10/2023, 1:51:34 AM ERROR [SequelizeModule] Unable to connect to the database. Retrying (1)...
这是我的app.module:

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersModule } from './modules/users/users.module';
import { SequelizeModule } from '@nestjs/sequelize';
import { Dialect } from 'sequelize';
import { ConfigModule } from '@nestjs/config';
import * as Joi from 'joi';

@Module({
  imports: [
    UsersModule,
    ConfigModule.forRoot({
      isGlobal: true,
      validationSchema: Joi.object({
        DATABASE_HOST: Joi.string().required(),
        DATABASE_PORT: Joi.number().required(),
        DATABASE_NAME: Joi.string().required(),
        DATABASE_USER: Joi.string().required(),
        DATABASE_PASS: Joi.string(),
        DATABASE_DIALECT: Joi.string().required(),
        APPS_PORT: Joi.number().required(),
        // SALT_ROUND: Joi.number().required(),
      }),
    }),
    SequelizeModule.forRoot({
      dialect: 'postgres' as Dialect,
      host: 'localhost',
      port: 5432,
      username: 'username',
      password: 'password',
      database: 'databaseName',
      autoLoadModels: true,
      synchronize: true,
      logging: true,
    }),
  ],
  controllers: [],
  providers: [],
})
export class AppModule {}

字符串

这里是我的用户模块和他们的模型,分别:

Users.module:

@Module({
  controllers: [UsersController],
  providers: [UsersService],
  imports: [SequelizeModule.forFeature([User])],
})
export class UsersModule {}


Users.entity:

import { Column, DataType, Model, Table } from 'sequelize-typescript';
@Table({
  timestamps: true,
})
export class User extends Model<User> {
  @Column({
    type: DataType.STRING,
    allowNull: false,
  })
  username: string;

  @Column({
    type: DataType.STRING,
    allowNull: false,
  })
  password: string;
}


我正在使用Sequelize和Postgres,并且数据库已经创建。我的数据库连接配置正确(dbName,user,pass,host,port)。
到底是什么导致了这个问题?我有另一个应用程序与确切的配置,它的工作刚刚好。
当我设置autoLoadModels: true时发生错误。当我将其设置为false时,它消失了,但当我实际尝试查询数据库时,我遇到了另一个错误:ERROR [ExceptionsHandler] Model not initialized: Member "findAll" cannot be called. "User" needs to be added to a Sequelize instance.
因此,将其设置为false并不能真正解决问题,因为我的应用程序根本没有连接到数据库。
我尝试使用与其他工作应用相同的软件包版本。我尝试使用127.0.0.1而不是localhost。我尝试删除我的node_modules并重新安装我的软件包。

qojgxg4l

qojgxg4l1#

这里也有同样的问题。我将autoLoadModels设置为false,它对我有效
所以结果是你不能同时拥有两个:imports:[SequelizeModule.forFeature([User])]和autoLoadModels:true
至少我的情况是这样的

相关问题