-
Create the app and set stuff up.
git init nvm use 6 npm init npm i tape --save-dev npm i knex sqlite3 --save echo "node_modules" > .gitignore echo "*.sqlite" >> .gitignore echo "6" > .nvmrc git add . git commit -m "Initial commit"
-
Add scripts in
package.jsonto run knex."scripts": { "init": "knex init", "migrate:make": "knex migrate:make", "migrate:latest": "knex migrate:latest", "migrate:rollback": "knex migrate:rollback", "seed:make": "knex seed:make", "seed:run": "knex seed:run", "test": "tape tests.js" },
-
Create
knexfile.jsby runningnpm run init. -
Prune the
knexfile.jsto:module.exports = { development: { client: 'sqlite3', connection: { filename: './dev.sqlite' }, useNullAsDefault: true } }
-
Create
Userstable by runningnpm run migrate:make create-users -
Edit the migration file accordingly:
exports.up = function (knex, Promise) { console.log('Creating Users') return knex.schema.createTableIfNotExists('Users', function (table) { table.increments('id') table.string('firstName') table.string('lastName') table.string('username') }) } exports.down = function (knex, Promise) { console.log('Dropping Users') return knex.schema.dropTableIfExists('Users').then(function () { console.log('Users table was dropped') }) }
-
Apply the migration file by running
npm run migrate:latest. -
Open
dev.sqlitein the SQLite Manager tool and verify schema. -
Create a new seed by running
npm run seed:make test-users. -
Change table to
Usersand add some objects withfirstName,lastNameandusernameproperties. -
Apply the seed data by running
npm run seed:run. -
Refresh the
Userstable and verify the data was inserted. -
Smile 😃 nice work!
-
Drop the
Userstable by runningnpm run migrate:rollback. -
Reapply the migration to add the table back and add the test data back.
-
Write some scripts that perform CRUD operations on the database. You will need to read the docs to do this because we haven't talked about how to do this yet.
