Sequelize db:migrate 命令在 docker 中不起作用,出现错误
Sequelize db:migrate command not working in docker getting error
我在 运行ning npx sequelize db:migrate
时出现以下错误
Sequelize CLI [Node: 16.14.0, CLI: 6.4.1, ORM: 6.12.5]
node_api |
node_api |
node_api |
node_api | ERROR: Cannot find "/app/src/config/database.js". Have you run "sequelize init"?
Docker节点应用文件
FROM node:16.14.0-alpine
ENV WORK_DIR /app
WORKDIR $WORK_DIR
COPY . .
RUN npm install && npm cache clean --force
EXPOSE 8080
#CMD [ "npm", "run", "dev" ]
在 Docker 中的节点 api 容器下方添加 - 编写如下文件:
api:
container_name: node_api
build:
context: ../node-app/
dockerfile: Dockerfile.dev
ports:
- 8080:8080
depends_on:
- postgres
restart: on-failure
volumes:
- ../node-app/:/app/src
command: sh -c "cd src && npx sequelize db:migrate --config config/database.js && npm run dev"
environment:
# Port
PORT: 8080
# Debug
LOG_LEVEL: debug
DB_USERNAME: postgres
DB_PASSWORD: root
DB_NAME: mydb
DB_HOSTNAME: postgres_db
DB_PORT: 5432
NODE_ENV: development
我在 src 文件夹中保存了 .sequelizerc 文件,内容如下。
const path = require('path');
module.exports = {
'config': path.resolve('config', 'database.js'),
'models-path': path.resolve('db', 'models'),
'seeders-path': path.resolve('db', 'seeders'),
'migrations-path': path.resolve('db', 'migrations')
};
当我运行 sequelize node-app 中的 src 目录时,它工作正常并且迁移发生了。但是当我从 docker 运行 它找不到仅保存在 src 文件夹中的 .sequelizerc 文件时。为了避免混淆,我给了 database.js sequelize 命令的路径,但我仍然收到找不到文件的错误。
这是我面临的奇怪问题。我猜测sequelize、nodejs和cli的版本存在一些问题。
让我知道任何人都可以帮助我找出我的错误。
提前致谢。
问题出在卷装载上。
volumes:
- ../node-app/:/app/src
我在 运行ning npx sequelize db:migrate
时出现以下错误Sequelize CLI [Node: 16.14.0, CLI: 6.4.1, ORM: 6.12.5]
node_api |
node_api |
node_api |
node_api | ERROR: Cannot find "/app/src/config/database.js". Have you run "sequelize init"?
Docker节点应用文件
FROM node:16.14.0-alpine
ENV WORK_DIR /app
WORKDIR $WORK_DIR
COPY . .
RUN npm install && npm cache clean --force
EXPOSE 8080
#CMD [ "npm", "run", "dev" ]
在 Docker 中的节点 api 容器下方添加 - 编写如下文件:
api:
container_name: node_api
build:
context: ../node-app/
dockerfile: Dockerfile.dev
ports:
- 8080:8080
depends_on:
- postgres
restart: on-failure
volumes:
- ../node-app/:/app/src
command: sh -c "cd src && npx sequelize db:migrate --config config/database.js && npm run dev"
environment:
# Port
PORT: 8080
# Debug
LOG_LEVEL: debug
DB_USERNAME: postgres
DB_PASSWORD: root
DB_NAME: mydb
DB_HOSTNAME: postgres_db
DB_PORT: 5432
NODE_ENV: development
我在 src 文件夹中保存了 .sequelizerc 文件,内容如下。
const path = require('path');
module.exports = {
'config': path.resolve('config', 'database.js'),
'models-path': path.resolve('db', 'models'),
'seeders-path': path.resolve('db', 'seeders'),
'migrations-path': path.resolve('db', 'migrations')
};
当我运行 sequelize node-app 中的 src 目录时,它工作正常并且迁移发生了。但是当我从 docker 运行 它找不到仅保存在 src 文件夹中的 .sequelizerc 文件时。为了避免混淆,我给了 database.js sequelize 命令的路径,但我仍然收到找不到文件的错误。
这是我面临的奇怪问题。我猜测sequelize、nodejs和cli的版本存在一些问题。
让我知道任何人都可以帮助我找出我的错误。 提前致谢。
问题出在卷装载上。
volumes:
- ../node-app/:/app/src