Note:
<example>is meant to denote text replaced by you (including brackets).
// global dependencies
npm install -g knex// project's dependencies
npm install knex pg --save// project's dev dependencies
npm nodemon --save-dev$ psqlCREATE DATABASE <example>;
CREATE DATABASE <example_test>;$ knex init
Created ./knexfile.jsReplace contents of ./knexfile.js with:
module.exports = {
development: {
client: 'pg',
connection:'postgres://localhost/<examples>',
migrations: {
directory: './db/migrations'
},
seeds: {
directory: './db/seeds/dev'
},
useNullAsDefault: true
},
test: {
client: 'pg',
connection:'postgres://localhost/<examples_test>',
migrations: {
directory: './db/migrations'
},
seeds: {
directory: './db/seeds/test'
},
useNullAsDefault: true
},
production: {
client: 'pg',
connection: process.env.DATABASE_URL,
migrations: {
directory: './db/migrations'
},
seeds: {
directory: './db/seeds/production'
},
useNullAsDefault: true
}
}$ knex migrate:make create-<example>-tablePopulate those functions in your migrations/<example>.js file.
For example:
exports.up = function(knex, Promise) {
let createQuery = `CREATE TABLE <examples>(
id SERIAL PRIMARY KEY NOT NULL,
message TEXT,
created_at TIMESTAMP
)`
return knex.raw(createQuery)
}
exports.down = function(knex, Promise) {
let dropQuery = `DROP TABLE <examples>`
return knex.raw(dropQuery)
}$ knex migrate:latest
Add --env=test to migrate your test database.
$ knex seed:make <examples>Replace the function in seeds/dev/<examples>.js with your own seeds.d
$ knex seed:runThe following lines may need their paths adjusted depending on where in the project they're used.
const environment = process.env.NODE_ENV || 'development'; // if something else isn't setting ENV, use development
const configuration = require('../knexfile')[environment]; // require environment's settings from knexfile
const database = require('knex')(configuration); // connect to DB via knex using env's settingsYou're ready to get devving!
Hey Lauren, just wanted to say thank you for posting this. Helped me solve my issue and create my first database with Postgres!