ERROR: Cannot find "/config/config.json". Have you run "sequelize init"?

13,280

Solution 1

The sequelize commands are likely looking for config/config.json in the current working directory. At the time of you running the command that is /. You probably want it to run with /ng-app as the working directory. For this, you could just move WORKDIR /ng-app above the sequalize commands.

Solution 2

You can create a .sequelizerc config file for Sequlize CLI command for your project which tells Sequlize where to look for config files.

    var path = require('path')

module.exports = {
  'config':          path.resolve('server', 'config', 'database.json'),
  'migrations-path': path.resolve('server', 'migrations'),
  'models-path':     path.resolve('server', 'models'),
  'seeders-path':    path.resolve('server', 'seeders'),
}

Solution 3

just run sequelize init and it will create config folder in your project and config.json in this folder. after that change config.json as you want for connection

"development": { "username": "postgres", "password": "123", "database": "user", "host": "localhost", "dialect": "postgres", "operatorsAliases": false }

Share:
13,280
code-8
Author by

code-8

I'm B, I'm a cyb3r-full-stack-web-developer. I love anything that is related to web design/development/security, and I've been in the field for about ~9+ years. I do freelance on the side, if you need a web project done, message me. ;)

Updated on June 28, 2022

Comments

  • code-8
    code-8 almost 2 years

    I have this Dockerfile for my API project using Node.js - Express.js

    api.dockerfile

    FROM node:9.3.0
    
    COPY package.json ./
    
    RUN npm set progress=false && npm config set depth 0 && npm cache clean --force
    
    ## Storing node modules on a separate layer will prevent unnecessary npm installs at each build
    RUN npm i && npm install nodemon --save \
        && npm install pm2 -g \
        && npm install -g sequelize-cli \
        && mkdir /ng-app \
        && chown -R node:node /ng-app \
        && cp -R ./node_modules ./ng-app
    
    # Migration
    RUN sequelize db:migrate
    RUN sequelize db:seed:all
    
    USER node
    
    WORKDIR /ng-app
    
    COPY . .
    RUN mv docker.env .env
    
    CMD ["pm2-runtime", "index.js"]
    

    docker-compose.yaml

    version: "2"
    services:
      iproject-api:
        build:
          context: ./api
          dockerfile: api.dockerfile
        image: 'iproject-api'
        ports:
          - '3002:3002'
      iproject-web:
        build:
          context: ./web
          dockerfile: web.dockerfile
        image: 'iproject-web:latest'
        ports:
          - '8080:8080'
        links:
          - iproject-api
    

    This is the result, I got

    **docker-compose build --no-cache**
    
    Building iproject-api
    Step 1/11 : FROM node:9.3.0
     ---> 3d1823068e39
    Step 2/11 : COPY package.json ./
     ---> 68d259bbd036
    Removing intermediate container 792b207a42ed
    Step 3/11 : RUN npm set progress=false && npm config set depth 0 && npm cache clean --force
     ---> Running in ebd53a0f0e3d
    npm WARN using --force I sure hope you know what you are doing.
     ---> cd598f62f4e5
    Removing intermediate container ebd53a0f0e3d
    Step 4/11 : RUN npm i && npm install nodemon --save     && npm install pm2 -g     && npm install -g sequelize-cli     && mkdir /ng-app     && chown -R node:node /ng-app     && cp -R ./node_modules ./ng-app
     ---> Running in 492ea3c40c22
    
    > [email protected] install /node_modules/bcrypt
    > node-pre-gyp install --fallback-to-build
    
    node-pre-gyp ERR! Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v1.0.3/bcrypt_lib-v1.0.3-node-v59-linux-x64.tar.gz 
    node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v59 ABI) (falling back to source compile with node-gyp) 
    make: Entering directory '/node_modules/bcrypt/build'
      CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
      CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
      CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o
    In file included from ../../nan/nan.h:192:0,
                     from ../src/bcrypt_node.cc:1:
    ../../nan/nan_maybe_43_inl.h: In function 'Nan::Maybe<bool> Nan::ForceSet(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::PropertyAttribute)':
    ../../nan/nan_maybe_43_inl.h:112:73: warning: 'v8::Maybe<bool> v8::Object::ForceSet(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>, v8::PropertyAttribute)' is deprecated (declared at /root/.node-gyp/9.3.0/include/node/v8.h:3114): Use CreateDataProperty / DefineOwnProperty [-Wdeprecated-declarations]
       return obj->ForceSet(isolate->GetCurrentContext(), key, value, attribs);
                                                                             ^
      SOLINK_MODULE(target) Release/obj.target/bcrypt_lib.node
      COPY Release/bcrypt_lib.node
      COPY /node_modules/bcrypt/lib/binding/bcrypt_lib.node
      TOUCH Release/obj.target/action_after_build.stamp
    make: Leaving directory '/node_modules/bcrypt/build'
    npm notice created a lockfile as package-lock.json. You should commit this file.
    added 259 packages in 9.9s
    
    > [email protected] postinstall /node_modules/nodemon
    > node -e "console.log('\u001b[32mLove nodemon? You can now support the project via the open collective:\u001b[22m\u001b[39m\n > \u001b[96m\u001b[1mhttps://opencollective.com/nodemon/donate\u001b[0m\n')" || exit 0
    
    Love nodemon? You can now support the project via the open collective:
     > https://opencollective.com/nodemon/donate
    
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
    
    + [email protected]
    added 246 packages in 7.093s
    /usr/local/bin/pm2 -> /usr/local/lib/node_modules/pm2/bin/pm2
    /usr/local/bin/pm2-dev -> /usr/local/lib/node_modules/pm2/bin/pm2-dev
    /usr/local/bin/pm2-runtime -> /usr/local/lib/node_modules/pm2/bin/pm2-runtime
    /usr/local/bin/pm2-docker -> /usr/local/lib/node_modules/pm2/bin/pm2-docker
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/pm2/node_modules/fsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
    
    + [email protected]
    added 251 packages in 6.35s
    /usr/local/bin/sequelize -> /usr/local/lib/node_modules/sequelize-cli/lib/sequelize
    + [email protected]
    added 105 packages in 3.718s
     ---> 19c196ba636a
    Removing intermediate container 492ea3c40c22
    Step 5/11 : RUN sequelize db:migrate
     ---> Running in cc84d0fbfc57
    
    Sequelize CLI [Node: 9.3.0, CLI: 3.2.0, ORM: 4.31.0]
    
    WARNING: This version of Sequelize CLI is not fully compatible with Sequelize v4. https://github.com/sequelize/cli#sequelize-support
    

    ERROR: Cannot find "/config/config.json". Have you run "sequelize init"?

    How would one go about debugging this?