|
||
---|---|---|
controllers | ||
db | ||
models | ||
public | ||
routes | ||
.gitignore | ||
app.js | ||
package-lock.json | ||
package.json | ||
README.md |
use knex.js with ES6 on Node 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 dotenv --save
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 || "";
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
Check out the knex documentation
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