Knex.js para conectar com o banco de dados

Bom dia.

Estou usando o Knex.js para gerenciar o banco de dados
e preciso executar este script: “knex migrate:rollback && knex migrate:latest”,
coloquei ele como poststart e não esta sendo excutado.
Tentei colocar o script como prestart e no log mostra que não foi possível encontrar o diretória para pasta migrations: ‘/src/database/migrations’

– Configuração do knexfile.js para produção
production: {
client: ‘mysql’,
connection: {
host: process.env.DB_HOST,
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD
},
pool: {
min: 2,
max: 10
},
migrations: {
directory: ‘/src/database/migrations’
},
useNullAsDefault: true,
}

– Configuração do package.json
{

  "name": "clinica_das_multas_api",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "scripts": {

    "start": "node app.js",

    "poststart": "knex migrate:rollback && knex migrate:latest",

    "dev": "cross-env NODE_ENV=development nodemon app.js",

    "test": "cross-env NODE_ENV=test jest"

  },

  "keywords": [],

  "author": "",

  "license": "ISC",

  "devDependencies": {

    "jest": "^26.4.0",

    "nodemon": "^2.0.4",

    "sqlite3": "^5.0.0"

  },

  "dependencies": {

    "bcrypt": "^5.0.0",

    "celebrate": "^12.2.0",

    "cors": "^2.8.5",

    "crypto": "^1.0.1",

    "dotenv-safe": "^8.2.0",

    "express": "^4.17.1",

    "jsonwebtoken": "^8.5.1",

    "knex": "^0.21.3",

    "mysql": "^2.18.1"

  }

}

Alguém poderia me dar uma ajuda para que seja executado as migrations para criação das tabelas no banco?

Olá, @gabrielluis21! Tudo bem? :smiley:
Rapaz, tu disse que usou o poststart, e o prestart depois, né?
O que eu te recomendo é usar um outro, o postinstall. Esse aí roda logo depois de um deploy feito via git remote. Pois dai ele vai instalar as dependências e logo quando terminar vai executar esse script. Dai ele roda apenas uma vez, após cada deploy. Dai ele não fica rodando desnecessariamente em todo antes ou depois de start :wink:

Já quanto ao problema dele não encontrar o diretório, acho que talvez seja porque tu começou o caminho com uma ´/´ . Isso indica que é um caminho absoluto, iniciando pela raiz do sistema de arquivos. Então teria que ou incluir o caminho real, que provavelmente seria algo como /usr/src/app/src/database/migrations (onde o /usr/src/app é o caminho até a pasta que você coloca a aplicação) ou especificar um caminho relativo ao package.json (ou ao knexfile, não tenho certeza qual que seria usado nesse caso). Então se a pasta src estiver ao lado do package.json/knexfile, pode ser algo tipo src/database/migrations :smiley: