gpt4 book ai didi

node.js - NestJS和TypeORM无法连接我的本地Postgres数据库。声称我的数据库不存在,即使存在

转载 作者:行者123 更新时间:2023-12-02 19:20:03 26 4
gpt4 key购买 nike

我有使用TypeORM连接到本地数据库的NestJS应用程序。我用shell脚本创建数据库:

#!/bin/bash
set -e

SERVER="my_database_server";
PW="mysecretpassword";
DB="my_database";

echo "echo stop & remove old docker [$SERVER] and starting new fresh instance of [$SERVER]"
(docker kill $SERVER || :) && \
(docker rm $SERVER || :) && \
docker run --name $SERVER -e POSTGRES_PASSWORD=$PW \
-e PGPASSWORD=$PW \
-p 5432:5432 \
-d postgres

# wait for pg to start
echo "sleep wait for pg-server [$SERVER] to start";
SLEEP 3;

# create the db
echo "CREATE DATABASE $DB ENCODING 'UTF-8';" | docker exec -i $SERVER psql -U postgres
echo "\l" | docker exec -i $SERVER psql -U postgres

之后,它将记录数据库:
enter image description here

然后我启动我的应用程序,遇到错误“错误:数据库“my_database”不存在”

我使用以下代码连接到数据库:
static getDatabaseConnection(): TypeOrmModuleOptions {
console.log(require('dotenv').config())
return {
type: 'postgres',
host: "127.0.0.1",
port: 5432,
username: 'postgres',
password: 'mysecretpassword',
database: 'my_database',
entities: ['dist/**/*.entity{.ts,.js}'],
synchronize: true,
};
}

有什么想法我会出错吗?

最佳答案

连接到Docker实例时,通常应使用服务名称。在这种情况下,我想它是my_database_server作为host参数。

return {
type: 'postgres',
host: "my_database_server",
port: 5432,
username: 'postgres',
password: 'mysecretpassword',
database: 'my_database',
entities: ['dist/**/*.entity{.ts,.js}'],
synchronize: true,
};

关于node.js - NestJS和TypeORM无法连接我的本地Postgres数据库。声称我的数据库不存在,即使存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60639205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com