2.0 KiB
use knex.js as ES6 and work with .env
The below instructions are intended for command line execution while working with node server
install dotenv and knex.js
npm install knex --save
In the project root directory, create a folder called 'db' and navigate to this 'db' folder:
execute the following command:
npx knex init
A 'knexfile.js' will be created in this directory.
Change the file extension to .cjs
you will need to add the below line in your package.json file:
"type": "module",
create 2 subfolders inside 'db' folder, called "migrations" and "seeds"
data in .env file
This file should be placed in the project root directory
DEV_USER= DEV_DB= DEV_PASSWORD= DEV_HOST=localhost DEV_PORT=5432
knexfile.cjs configuration
// check current working directory const dir = process.cwd(); // check current running environment const env = process.env.ENVIRONMENT || "";
- // current settings do not work for production mode
- // TODO production mode checking
- const config =
- env === "development"
- ? require("dotenv").config({ path: dir + "/.env" })
- require("dotenv").config({ path: "../.env" });
// the database details here // exports.development = {} exports.production = {}
below instructions are used on a terminal window navigate to 'db' folder
create a migration file type:
knex migrate:make create_XYZ_table --migrations-directory migrations
make sure to rename the file extensions to .cjs
execute migration type:
knex migrate:latest --knexfile knexfile.cjs --migrations-directory migrations
execute rollback type:
knex migrate:rollback --knexfile knexfile.cjs --migrations-directory migrations
knex URL: https://knexjs.org/guide/migrations.html#migration-cli
create a seed file type:
knex seed:make 01_XYZ_test_data --knexfile knexfile.cjs
make sure to rename the file extensions to .cjs
execute the seed file type:
knex seed:run --knexfile knexfile.cjs
to run the node server
navigate back to the project root directory and type:
ENVIRONMENT=development npm run dev