运行 使用 NestJS、TypeORM 和 Docker 进行数据库迁移时出错
Error when running database migrations with NestJS, TypeORM and Docker
在 Ubuntu 20.4
上使用 NestJS、docker-compose 和 Postgres
尝试使用此应用进行我的第一次数据库迁移:
npx typeorm migration:create -n mushroomRefactor
npm run build
npx typeorm migration:run
docker-撰写:
version: "3"
services:
db:
image: postgres
restart: always
volumes:
- mushrooms-psql:/var/lib/postgresql/data
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: pass123
volumes:
mushrooms-psql:
ormconfig.js:
module.exports = {
type: 'postgres',
host: 'db',
port: 5423,
username: 'postgres',
password: 'pass123',
database: 'postgres',
entities: ['dist/**/*.entity.js'],
migrations: ['dist/migrations/*.js'],
cli: {
migrationsDir: 'src/migrations',
},
};
Docker 文件:
FROM node:16
# install app dependencies
# use wildcard * to install package.json and package-lock.json
COPY package*.json ./
RUN npm install
# bundle app source
COPY . .
EXPOSE 8080
RUN npm run build
# entry file to run the app
CMD [ "node", "dist/main" ]
但它正在返回:
Error during migration run: Error: getaddrinfo EAI_AGAIN db at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26) { errno: -3001, code: 'EAI_AGAIN', syscall: 'getaddrinfo', hostname: 'db' }
在您的 NestJS 应用程序中使用端口 5432
,因为 5423
是暴露给主机的端口。容器之间共享的端口仍然是5432
在 Ubuntu 20.4
上使用 NestJS、docker-compose 和 Postgres尝试使用此应用进行我的第一次数据库迁移:
npx typeorm migration:create -n mushroomRefactor
npm run build
npx typeorm migration:run
docker-撰写:
version: "3"
services:
db:
image: postgres
restart: always
volumes:
- mushrooms-psql:/var/lib/postgresql/data
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: pass123
volumes:
mushrooms-psql:
ormconfig.js:
module.exports = {
type: 'postgres',
host: 'db',
port: 5423,
username: 'postgres',
password: 'pass123',
database: 'postgres',
entities: ['dist/**/*.entity.js'],
migrations: ['dist/migrations/*.js'],
cli: {
migrationsDir: 'src/migrations',
},
};
Docker 文件:
FROM node:16
# install app dependencies
# use wildcard * to install package.json and package-lock.json
COPY package*.json ./
RUN npm install
# bundle app source
COPY . .
EXPOSE 8080
RUN npm run build
# entry file to run the app
CMD [ "node", "dist/main" ]
但它正在返回:
Error during migration run: Error: getaddrinfo EAI_AGAIN db at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26) { errno: -3001, code: 'EAI_AGAIN', syscall: 'getaddrinfo', hostname: 'db' }
在您的 NestJS 应用程序中使用端口 5432
,因为 5423
是暴露给主机的端口。容器之间共享的端口仍然是5432