Migration In node js

Introduction

In modern web development, managing database migrations is a crucial aspect of building robust and scalable applications. Knex.js is a popular SQL query builder for Node.js that provides a powerful toolset for managing database migrations seamlessly. In this guide, we'll walk through the process of installing and using Knex.js for database migrations in a Node.js project.

Table of content

  1. What is Knex.js?
  2. Installing Knex.js
  3. Setting up Knex Configuration
  4. Creating Migration Files
  5. Writing Migration Code
  6. Running Migrations
  7. Rolling Back Migrations
  8. Seeding Data (Optional)
  9. Conclusion

1. What is Knex.js?

Knex.js is a SQL query builder for Node.js, designed to be flexible, portable, and easy to use. It provides a powerful set of tools for interacting with relational databases and managing database migrations, making it an ideal choice for building database-driven applications.

2. Installing Knex.js

To install Knex.js, you can use npm, the package manager for Node.js. You can either install Knex.js globally to access the Knex CLI from anywhere in your terminal, or locally within your project as a project dependency.

Global Installation:

npm install -g knex

Local Installation:

npm install knex

 

3. Setting up Knex Configuration

After installing Knex.js, you need to set up a Knex configuration file (knexfile.js) in your project directory. This file contains configuration settings for different environments (e.g., development, production) and specifies the database connection details.

Example knexfile.js:

module.exports = {
  development: {
    client: 'mysql',
    connection: {
      host: '127.0.0.1',
      user: 'your_database_user',
      password: 'your_database_password',
      database: 'your_database_name',
    },
    migrations: {
      directory: './migrations',
    },
  },
};

 

4. Creating Migration Files

To create a new migration file, you can use the Knex CLI. Migration files are JavaScript files that contain instructions for modifying the database schema.

npx knex migrate:make migration_name

 

5. Writing Migration Code

Open the newly created migration file in the migrations directory and write the necessary code to define the database schema changes. Use Knex's migration API to create, modify, or delete database tables, columns, indexes, etc.

Example Migration:

exports.up = function(knex) {
  return knex.schema.createTable('users', function(table) {
    table.increments('id').primary();
    table.string('username').notNullable();
    table.string('email').notNullable().unique();
    table.timestamps(true, true);
  });
};

exports.down = function(knex) {
  return knex.schema.dropTableIfExists('users');
};

 

6. Running Migrations

To apply pending migrations to the database, use the Knex CLI.

npx knex migrate:latest

 

7. Rolling Back Migrations

If needed, you can rollback migrations using the Knex CLI.

npx knex migrate:rollback

 

8. Seeding Data (Optional)

Knex.js also allows you to seed the database with initial data after running migrations.

npx knex seed:run

 

 

9. Conclusion

Congratulations! You've learned how to use Knex.js for managing database migrations in a Node.js project. Knex.js provides a robust and flexible solution for interacting with relational databases, making it easier to build and maintain database-driven applications.

Now that you're familiar with the basics of Knex.js, feel free to explore its documentation and experiment with more advanced features to enhance your Node.js projects. Happy coding!

Don’t hesitate to contact us any time

Our experts can help you accelerate your digital transformation journey!

Call Us For Any inquiry

+91 9054325004