knex — очень полезный инструмент в Node.js, который используется для запроса данных в реляционных базах данных, таких как PostgreSQL и MySQL. После установки knex с помощью npm install knex — save вместе с установкой указанной системы баз данных запуск команды knex init автоматически создаст knexfile. Здесь пользователь может увидеть, какая система управления базой данных используется и как называется база данных как для разработки, так и для производства.

knex похож на Rails тем, что вы можете запускать миграции для обновления и создания схем для ваших таблиц. Если вы измените схему таблицы, вам нужно будет запустить knex migrate:rollback, а затем knex migrate:latest, чтобы выполнить обновление до последней миграции. Что хорошего в knex по сравнению с Rails, так это то, что вы можете просто вводить изменения в саму схему вместо того, чтобы вводить команду, например rails g migration AddRowToTable row:string, а затем выполнять ее миграцию. Это проще, чем в Джанго.

Вы также можете заполнить базу данных с помощью knex, что означает, что вы можете создавать записи на основе достоверных данных. Синтаксис очень прост. Вы начинаете с удаления записей, которые в настоящее время находятся в базе данных (если это ваша цель), с помощью:

exports.seed = function(knex) {
  return knex.('table-name').del()

И он возвращает обещание, так что вы можете добавить остальную часть функции seed в .then:

    .then(function() {    
      return knex('table-name').insert([
        {key: value, key: value},
        {key: value, key: value},
        {key: value, key: value}
      ])
    })
}

а затем запуск начального файла knex с помощью команды knex seed:run запустит эту начальную функцию и заполнит базу данных.

В knex docs гораздо больше команд и инструментов, но это очень простой инструмент, особенно после опыта работы с Rails.