Knex.js vs PostgreSQL

Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Knex.js
Knex.js

74
88
+ 1
20
PostgreSQL
PostgreSQL

16.9K
12.7K
+ 1
3.4K
Add tool

Knex.js vs PostgreSQL: What are the differences?

What is Knex.js? SQL query builder for Postgres, MySQL, MariaDB, SQLite3, and Oracle. Knex.js is a "batteries included" SQL query builder for Postgres, MySQL, MariaDB, SQLite3, and Oracle designed to be flexible, portable, and fun to use. It features both traditional node style callbacks as well as a promise interface for cleaner async flow control, a stream interface, full featured query and schema builders, transaction support (with savepoints), connection pooling and standardized responses between different query clients and dialects.

What is PostgreSQL? A powerful, open source object-relational database system. PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.

Knex.js and PostgreSQL are primarily classified as "Database" and "Databases" tools respectively.

"Write once and then connect to almost any sql engine" is the top reason why over 3 developers like Knex.js, while over 744 developers mention "Relational database" as the leading cause for choosing PostgreSQL.

Knex.js and PostgreSQL are both open source tools. It seems that Knex.js with 9.91K GitHub stars and 1.24K forks on GitHub has more adoption than PostgreSQL with 5.44K GitHub stars and 1.8K GitHub forks.

According to the StackShare community, PostgreSQL has a broader approval, being mentioned in 2739 company stacks & 2170 developers stacks; compared to Knex.js, which is listed in 10 company stacks and 9 developer stacks.

What is Knex.js?

Knex.js is a "batteries included" SQL query builder for Postgres, MySQL, MariaDB, SQLite3, and Oracle designed to be flexible, portable, and fun to use. It features both traditional node style callbacks as well as a promise interface for cleaner async flow control, a stream interface, full featured query and schema builders, transaction support (with savepoints), connection pooling and standardized responses between different query clients and dialects.

What is PostgreSQL?

PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Knex.js?
Why do developers choose PostgreSQL?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con
    Jobs that mention Knex.js and PostgreSQL as a desired skillset
    OneSignalOneSignal
    San Mateo, California
    OneSignalOneSignal
    San Mateo, California
    OneSignalOneSignal
    San Mateo, California
    What companies use Knex.js?
    What companies use PostgreSQL?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Knex.js?
    What tools integrate with PostgreSQL?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Knex.js and PostgreSQL?
    Slick
    It is a modern database query and access library for Scala. It allows you to work with stored data almost as if you were using Scala collections while at the same time giving you full control over when a database access happens and which data is transferred.
    Sequel Pro
    Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL databases.
    PostGIS
    PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL.
    Open PostgreSQL Monitoring
    Open PostgreSQL Monitoring is a free software designed to help you manage your PostgreSQL servers.
    Flyway
    It lets you regain control of your database migrations with pleasure and plain sql. Solves only one problem and solves it well. It migrates your database, so you don't have to worry about it anymore.
    See all alternatives
    Decisions about Knex.js and PostgreSQL
    Anton Sidelnikov
    Anton Sidelnikov
    Backend Developer at Beamery · | 5 upvotes · 9K views
    MongoDB
    MongoDB
    PostgreSQL
    PostgreSQL

    In my opinion PostgreSQL is totally over MongoDB - not only works with structured data & SQL & strict types, but also has excellent support for unstructured data as separate data type (you can store arbitrary JSONs - and they may be also queryable, depending on one of format's you may choose). Both writes & reads are much faster, then in Mongo. So you can get best on Document NoSQL & SQL in single database..

    Formal downside of PostgreSQL is clustering scalability. There's not simple way to build distributed a cluster. However, two points:

    1) You will need much more time before you need to actually scale due to PG's efficiency. And if you follow database-per-service pattern, maybe you won't need ever, cause dealing few billion records on single machine is an option for PG.

    2) When you need to - you do it in a way you need, including as a part of app's logic (e.g. sharding by key, or PG-based clustering solution with strict model), scalability will be very transparent, much more obvious than Mongo's "cluster just works (but then fails)" replication.

    See more
    Tim Nolet
    Tim Nolet
    Founder, Engineer & Dishwasher at Checkly · | 18 upvotes · 206.8K views
    atChecklyHQChecklyHQ
    vuex
    vuex
    Knex.js
    Knex.js
    PostgreSQL
    PostgreSQL
    Amazon S3
    Amazon S3
    AWS Lambda
    AWS Lambda
    Vue.js
    Vue.js
    hapi
    hapi
    Node.js
    Node.js
    GitHub
    GitHub
    Docker
    Docker
    Heroku
    Heroku

    Heroku Docker GitHub Node.js hapi Vue.js AWS Lambda Amazon S3 PostgreSQL Knex.js Checkly is a fairly young company and we're still working hard to find the correct mix of product features, price and audience.

    We are focussed on tech B2B, but I always wanted to serve solo developers too. So I decided to make a $7 plan.

    Why $7? Simply put, it seems to be a sweet spot for tech companies: Heroku, Docker, Github, Appoptics (Librato) all offer $7 plans. They must have done a ton of research into this, so why not piggy back that and try it out.

    Enough biz talk, onto tech. The challenges were:

    • Slice of a portion of the functionality so a $7 plan is still profitable. We call this the "plan limits"
    • Update API and back end services to handle and enforce plan limits.
    • Update the UI to kindly state plan limits are in effect on some part of the UI.
    • Update the pricing page to reflect all changes.
    • Keep the actual processing backend, storage and API's as untouched as possible.

    In essence, we went from strictly volume based pricing to value based pricing. Here come the technical steps & decisions we made to get there.

    1. We updated our PostgreSQL schema so plans now have an array of "features". These are string constants that represent feature toggles.
    2. The Vue.js frontend reads these from the vuex store on login.
    3. Based on these values, the UI has simple v-if statements to either just show the feature or show a friendly "please upgrade" button.
    4. The hapi API has a hook on each relevant API endpoint that checks whether a user's plan has the feature enabled, or not.

    Side note: We offer 10 SMS messages per month on the developer plan. However, we were not actually counting how many people were sending. We had to update our alerting daemon (that runs on Heroku and triggers SMS messages via AWS SNS) to actually bump a counter.

    What we build is basically feature-toggling based on plan features. It is very extensible for future additions. Our scheduling and storage backend that actually runs users' monitoring requests (AWS Lambda) and stores the results (S3 and Postgres) has no knowledge of all of this and remained unchanged.

    Hope this helps anyone building out their SaaS and is in a similar situation.

    See more
    Joshua Dean Küpper
    Joshua Dean Küpper
    CEO at Scrayos UG (haftungsbeschränkt) · | 5 upvotes · 35.5K views
    atScrayos UG (haftungsbeschränkt)Scrayos UG (haftungsbeschränkt)
    Sentry
    Sentry
    GitLab
    GitLab
    PostgreSQL
    PostgreSQL
    MariaDB
    MariaDB

    We primarily use MariaDB but use PostgreSQL as a part of GitLab , Sentry and @Nextcloud , which (initially) forced us to use it anyways. While this isn't much of a decision – because we didn't have one (ha ha) – we learned to love the perks and advantages of PostgreSQL anyways. PostgreSQLs extension system makes it even more flexible than a lot of the other SQL-based DBs (that only offer stored procedures) and the additional JOIN options, the enhanced role management and the different authentication options came in really handy, when doing manual maintenance on the databases.

    See more
    Alex A
    Alex A
    Founder at PRIZ Guru · | 6 upvotes · 8.4K views
    atPRIZ GuruPRIZ Guru
    PostgreSQL
    PostgreSQL
    MySQL
    MySQL

    One of our battles at the very beginning of the road was choosing the right database. In fact, our first prototype was built on MySQL and back then nothing else was even under a consideration (don't ask me why). At some point, I was working on a project which was running on PostgreSQL and it is only then I understood the full power of it. We have over a billion of records in production instance, and we are able to optimize it to run fast and reliable. Well, now my default DB is PostgreSQL :)

    See more
    Tim Nolet
    Tim Nolet
    Founder, Engineer & Dishwasher at Checkly · | 8 upvotes · 60.8K views
    atChecklyHQChecklyHQ
    Amazon DynamoDB
    Amazon DynamoDB
    MongoDB
    MongoDB
    Node.js
    Node.js
    Heroku
    Heroku
    PostgreSQL
    PostgreSQL

    PostgreSQL Heroku Node.js MongoDB Amazon DynamoDB

    When I started building Checkly, one of the first things on the agenda was how to actually structure our SaaS database model: think accounts, users, subscriptions etc. Weirdly, there is not a lot of information on this on the "blogopshere" (cringe...). After research and some false starts with MongoDB and Amazon DynamoDB we ended up with PostgreSQL and a schema consisting of just four tables that form the backbone of all generic "Saasy" stuff almost any B2B SaaS bumps into.

    In a nutshell:cPostgreSQL Heroku Node.js MongoDB Amazon DynamoDB

    When I started building Checkly, one of the first things on the agenda was how to actually structure our SaaS database model: think accounts, users, subscriptions etc. Weirdly, there is not a lot of information on this on the "blogopshere" (cringe...). After research and some false starts with MongoDB and Amazon DynamoDB we ended up with PostgreSQL and a schema consisting of just four tables that form the backbone of all generic "Saasy" stuff almost any B2B SaaS bumps into.

    In a nutshell:

    • We use Postgres on Heroku.
    • We use a "one database, on schema" approach for partitioning customer data.
    • We use an accounts, memberships and users table to create a many-to-many relation between users and accounts.
    • We completely decouple prices, payments and the exact ingredients for a customer's plan.

    All the details including a database schema diagram are in the linked blog post.

    See more
    Łukasz Korecki
    Łukasz Korecki
    CTO & Co-founder at EnjoyHQ · | 12 upvotes · 37.5K views
    atEnjoyHQEnjoyHQ
    PostgreSQL
    PostgreSQL
    MongoDB
    MongoDB
    RethinkDB
    RethinkDB

    We initially chose RethinkDB because of the schema-less document store features, and better durability resilience/story than MongoDB In the end, it didn't work out quite as we expected: there's plenty of scalability issues, it's near impossible to run analytical workloads and small community makes working with Rethink a challenge. We're in process of migrating all our workloads to PostgreSQL and hopefully, we will be able to decommission our RethinkDB deployment soon.

    See more
    Mauro Bennici
    Mauro Bennici
    CTO at You Are My GUide · | 7 upvotes · 10.2K views
    atYou Are My GUideYou Are My GUide
    MongoDB
    MongoDB
    TimescaleDB
    TimescaleDB
    PostgreSQL
    PostgreSQL

    PostgreSQL plus TimescaleDB allow us to concentrate the business effort on how to analyze valuable data instead of manage them on IT side. We are now able to ingest thousand of social shares "managed" data without compromise the scalability of the system or the time query. TimescaleDB is transparent to PostgreSQL , so we continue to use the same SQL syntax without any changes. At the same time, because we need to manage few document objects we dismissed the MongoDB cluster.

    See more
    Tor Hagemann
    Tor Hagemann
    at Socotra · | 2 upvotes · 2.2K views
    atSocotraSocotra
    Amazon DynamoDB
    Amazon DynamoDB
    PostgreSQL
    PostgreSQL
    MySQL
    MySQL

    Much of our data model is relational, which makes MySQL or PostgreSQL (and family) fit the API's we need to build, in order to meet the needs of our customers.

    Sometimes the flexibility of a NoSQL store like Amazon DynamoDB is very useful, but the lack of consistency really impacts usability and performance long-term, compared with viable alternatives. At our current scale, we've seen huge benefits from moving some of our tables out of Dynamo and doing more in SQL.

    There will always be use cases for NoSQL and key-values stores, but if your model is well understood in your business/industry: relational databases are the way to go after finding product-market fit. Always understand the trade-offs (and a few intimate details) of any data store before you add to your company's stack!

    See more
    Joseph Irving
    Joseph Irving
    DevOps Engineer at uSwitch · | 8 upvotes · 7.3K views
    atuSwitchuSwitch
    Go
    Go
    PostgreSQL
    PostgreSQL
    MySQL
    MySQL
    Kubernetes
    Kubernetes
    Vault
    Vault

    At uSwitch we use Vault to generate short lived database credentials for our applications running in Kubernetes. We wanted to move from an environment where we had 100 dbs with a variety of static passwords being shared around to a place where each pod would have credentials that only last for its lifetime.

    We chose vault because:

    • It had built in Kubernetes support so we could use service accounts to permission which pods could access which database.

    • A terraform provider so that we could configure both our RDS instances and their vault configuration in one place.

    • A variety of database providers including MySQL/PostgreSQL (our most common dbs).

    • A good api/Go -sdk so that we could build tooling around it to simplify development worfklow.

    • It had other features we would utilise such as PKI

    See more
    Daniel Quinn
    Daniel Quinn
    Senior Developer at Founders4Schools · | 2 upvotes · 20.8K views
    atThe Paperless ProjectThe Paperless Project
    PostgreSQL
    PostgreSQL
    SQLite
    SQLite

    SQLite is a tricky beast. It's great if you're working single-threaded, but a Terrible Idea if you've got more than one concurrent connection. You use it because it's easy to setup, light, and portable (it's just a file).

    In Paperless, we've built a self-hosted web application, so it makes sense to standardise on something small & light, and as we don't have to worry about multiple connections (it's just you using the app), it's a perfect fit.

    For users wanting to scale Paperless up to a multi-user environment though, we do provide the hooks to switch to PostgreSQL .

    See more
    Tim Nolet
    Tim Nolet
    Founder, Engineer & Dishwasher at Checkly · | 10 upvotes · 28.7K views
    atChecklyHQChecklyHQ
    Knex.js
    Knex.js
    Node.js
    Node.js
    Heroku Postgres
    Heroku Postgres
    Heroku
    Heroku
    PostgreSQL
    PostgreSQL

    PostgreSQL Heroku Heroku Postgres Node.js Knex.js

    Last week we rolled out a simple patch that decimated the response time of a Postgres query crucial to Checkly. It quite literally went from an average of ~100ms with peaks to 1 second to a steady 1ms to 10ms.

    However, that patch was just the last step of a longer journey:

    1. I looked at what API endpoints were using which queries and how their response time grew over time. Specifically the customer facing API endpoints that are directly responsible for rendering the first dashboard page of the product are crucial.

    2. I looked at the Heroku metrics such as those reported by heroku pg:outlier and cross references that with "slowest response time" statistics.

    3. I reproduced the production situation as best as possible on a local development machine and test my hypothesis that an composite index on a uuid field and a timestampz field would reduce response times.

    This method secured the victory and we rolled out a new index last week. Response times plummeted. Read the full story in the blog post.

    See more
    Robert Zuber
    Robert Zuber
    CTO at CircleCI · | 22 upvotes · 143.9K views
    atCircleCICircleCI
    Amazon S3
    Amazon S3
    GitHub
    GitHub
    Redis
    Redis
    PostgreSQL
    PostgreSQL
    MongoDB
    MongoDB

    We use MongoDB as our primary #datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and #ETL.

    As we pull #microservices from our #monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

    When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writes are in process.

    See more
    Martin Johannesson
    Martin Johannesson
    Senior Software Developer at IT Minds · | 10 upvotes · 14.8K views
    atIT MindsIT Minds
    AMP
    AMP
    PWA
    PWA
    React
    React
    MongoDB
    MongoDB
    Next.js
    Next.js
    GraphQL
    GraphQL
    Apollo
    Apollo
    PostgreSQL
    PostgreSQL
    TypeORM
    TypeORM
    Node.js
    Node.js
    TypeScript
    TypeScript
    #Serverless
    #Backend
    #B2B

    At IT Minds we create customized internal or #B2B web and mobile apps. I have a go to stack that I pitch to our customers consisting of 3 core areas. 1) A data core #backend . 2) A micro #serverless #backend. 3) A user client #frontend.

    For the Data Core I create a backend using TypeScript Node.js and with TypeORM connecting to a PostgreSQL Exposing an action based api with Apollo GraphQL

    For the micro serverless backend, which purpose is verification for authentication, autorization, logins and the likes. It is created with Next.js api pages. Using MongoDB to store essential information, caching etc.

    Finally the frontend is built with React using Next.js , TypeScript and @Apollo. We create the frontend as a PWA and have a AMP landing page by default.

    See more
    Jelena Dedovic
    Jelena Dedovic
    MSSQL
    MSSQL
    PostgreSQL
    PostgreSQL
    AIOHTTP
    AIOHTTP
    asyncio
    asyncio
    Tornado
    Tornado

    Investigating Tortoise ORM and GINO ORM...

    I need to introduce some async ORM with the current stack: Tornado with asyncio loop, AIOHTTP, with PostgreSQL and MSSQL. This project revolves heavily around realtime and due to the realtime requirements, blocking during database access is not acceptable.

    Considering that these ORMs are both young projects, I wondered if anybody had some experience with similar stack and these async ORMs?

    See more
    Nicolas Apx
    Nicolas Apx
    CEO - FullStack Javascript at Apx Development Limited · | 14 upvotes · 16.6K views
    atAPX DevelopmentAPX Development
    PostgreSQL
    PostgreSQL
    MongoDB
    MongoDB
    Node.js
    Node.js
    Python
    Python

    I am planning on building a micro-service eCommerce back-end to be easy to reuse in any project as we need. I would like to use both Python and Node.js and MongoDB & PostgreSQL , in your opinion which one would best suited for the following services:

    • Users-service
    • Products-service
    • Auth-service
    • Inventory-service
    • Order-service
    • Payment-service
    • Sku-service
    • And more not yet defined....

    Thanks

    Nicolas

    See more
    Interest over time
    Reviews of Knex.js and PostgreSQL
    No reviews found
    How developers use Knex.js and PostgreSQL
    Avatar of AngeloR
    AngeloR uses PostgreSQLPostgreSQL

    We use postgresql for the merge between sql/nosql. A lot of our data is unstructured JSON, or JSON that is currently in flux due to some MVP/interation processes that are going on. PostgreSQL gives the capability to do this.

    At the moment PostgreSQL on amazon is only at 9.5 which is one minor version down from support for document fragment updates which is something that we are waiting for. However, that may be some ways away.

    Other than that, we are using PostgreSQL as our main SQL store as a replacement for all the MSSQL databases that we have. Not only does it have great support through RDS (small ops team), but it also has some great ways for us to migrate off RDS to managed EC2 instances down the line if we need to.

    Avatar of Cloudcraft
    Cloudcraft uses PostgreSQLPostgreSQL

    PostgreSQL combines the best aspects of traditional SQL databases such as reliability, consistent performance, transactions, querying power, etc. with the flexibility of schemaless noSQL systems that are all the rage these days. Through the powerful JSON column types and indexes, you can now have your cake and eat it too! PostgreSQL may seem a bit arcane and old fashioned at first, but the developers have clearly shown that they understand databases and the storage trends better than almost anyone else. It definitely deserves to be part of everyone's toolbox; when you find yourself needing rock solid performance, operational simplicity and reliability, reach for PostgresQL.

    Avatar of Brandon Adams
    Brandon Adams uses PostgreSQLPostgreSQL

    Relational data stores solve a lot of problems reasonably well. Postgres has some data types that are really handy such as spatial, json, and a plethora of useful dates and integers. It has good availability of indexing solutions, and is well-supported for both custom modifications as well as hosting options (I like Amazon's Postgres for RDS). I use HoneySQL for Clojure as a composable AST that translates reliably to SQL. I typically use JDBC on Clojure, usually via org.clojure/java.jdbc.

    Avatar of ReviewTrackers
    ReviewTrackers uses PostgreSQLPostgreSQL

    PostgreSQL is responsible for nearly all data storage, validation and integrity. We leverage constraints, functions and custom extensions to ensure we have only one source of truth for our data access rules and that those rules live as close to the data as possible. Call us crazy, but ORMs only lead to ruin and despair.

    Avatar of Jeff Flynn
    Jeff Flynn uses PostgreSQLPostgreSQL

    Tried MongoDB - early euphoria - later dread. Tried MySQL - not bad at all. Found PostgreSQL - will never go back. So much support for this it should be your first choice. Simple local (free) installation, and one-click setup in Heroku - lots of options in terms of pricing/performance combinations.

    Avatar of Flux Work
    Flux Work uses Knex.jsKnex.js

    Not an ORM but a query builder. So developers are encouraged or sometimes forced to think about SQL and database layer, which is a good thing.

    Avatar of Zube
    Zube uses Knex.jsKnex.js

    Converts JS to SQL. Pretty awesome!

    How much does Knex.js cost?
    How much does PostgreSQL cost?
    Pricing unavailable
    Pricing unavailable
    News about Knex.js
    More news