PostgreSQL

Overview

PostgreSQL is one of the most popular open-source relational databases available. Millions of developers build applications on top of Postgres, and you can connect your Feathery form data directly to Postgres.

What you need

  • An active Feathery account and form
  • A running Postgres database

Background

PostgreSQL, often simply called Postgres, is an open-source, object-relational database management system (ORDBMS). It was developed at the University of California at Berkeley Computer Science Department and has been continuously improved by a diverse group of developers since its inception in 1986.

PostgreSQL stands out for its robustness, scalability, and adherence to SQL standards. It supports both SQL (relational) and JSON (non-relational) querying and is known for its advanced features, such as:

  • Complex queries: PostgreSQL is capable of executing complex SQL queries, making it a suitable choice for handling intricate data operations and analytics.
  • Concurrency: It employs Multiversion Concurrency Control (MVCC) to handle multiple transactions concurrently without locking, enhancing performance and scalability.
  • Reliability: PostgreSQL emphasizes data integrity and correctness and includes features like write-ahead logging, point-in-time recovery, and tablespace support to ensure data is not lost.
  • Extensibility: Users can extend PostgreSQL with custom functions developed using various programming languages such as PL/PGSQL (which is similar to Oracle’s PL/SQL), C, Python, and others.
  • Data types: It supports a wide range of data types including primitive types (integer, numeric, string), structured types (date/time, array, range), document types (JSON/JSONB, XML, key-value), and custom types defined by users.
  • Full-text search: PostgreSQL includes powerful full-text search capabilities, making it easier to search through large volumes of text-based data.
  • Foreign data wrappers: These allow PostgreSQL to query external databases and other data sources directly from within a PostgreSQL session.

Because of these and other features, PostgreSQL is used by a wide variety of applications and organizations, from small startups to large enterprises and government agencies. It is particularly favored for applications that require complex data management and high levels of customizability and data integrity.

Benefits

Here are some of the key benefits of using Postgres.

Open Source

  • Cost-Effective: PostgreSQL is open-source and free to use, which can significantly reduce the costs associated with database management systems.
  • Community Support: Being open-source, it has a large and active community that continuously contributes to its development, security, and features.

Advanced Features

  • Extensibility: Postgres is highly extensible, allowing users to create and use custom functions, data types, and even write code in different programming languages directly inside the database.
  • Data Integrity: It is designed with a strong focus on data integrity and supports ACID (Atomicity, Consistency, Isolation, Durability) properties to ensure reliable transactions.

Performance and Reliability

  • Concurrency: Thanks to its use of Multiversion Concurrency Control (MVCC), Postgres offers high levels of concurrency without read locks, enhancing performance.
  • Sophisticated Indexing: Postgres supports several advanced indexing techniques, such as GIN and GiST, to speed up queries and improve performance.

Standards Compliance

  • SQL Compliance: PostgreSQL closely adheres to SQL standards and continuously updates to support new SQL specifications, ensuring compatibility and reducing the learning curve for new users.

Robust Security

  • Strong Security Features: It includes robust security mechanisms, including strong access controls, column and row-level security, and integration with many external authentication systems like LDAP, SCRAM-SHA-256, and more.

Wide Range of Data Types

  • Support for Numerous Data Types: Postgres supports a wide array of data types, including geometric, custom enums, arrays, JSON/JSONB, and more, facilitating the storage and query of diverse datasets.

Advanced Functionality

  • Full-Text Search: It has powerful full-text search capabilities built-in, making it suitable for applications requiring complex text search.
  • Foreign Data Wrappers: Postgres can integrate with other databases and data sources via foreign data wrappers, allowing for cross-database queries and data integration.

High Availability and Disaster Recovery

  • Point-in-Time Recovery (PITR): Its support for write-ahead logging (WAL) enables point-in-time recovery, enhancing data durability.
  • Replication: Postgres supports multiple native replication methods, including streaming replication and logical replication, aiding in high availability and load balancing.

Geographic Data Support

  • PostGIS: With the PostGIS extension, Postgres becomes a powerful spatial database, which is essential for geographic information systems (GIS) and applications requiring location-based data analysis.

These benefits, coupled with its reliability and flexibility, make PostgreSQL a compelling choice for developers and businesses looking for a robust database solution. Whether for web, mobile, geospatial, or analytics applications, Postgres offers the features and performance needed to support complex data environments.

Considerations

When evaluating PostgreSQL (often referred to as Postgres) for your database needs, it's important to consider various factors to ensure it aligns well with your project's requirements, existing infrastructure, and future growth. Here’s a comprehensive checklist:

Compatibility and Requirements

  • Application Compatibility: Ensure that your application's programming languages and frameworks are fully compatible with PostgreSQL.
  • Data Types and Structures: Consider whether Postgres supports the specific data types and structures your application requires, including JSON, geospatial data with PostGIS, arrays, custom types, etc.

Performance and Scalability

  • Concurrency Needs: Evaluate Postgres's concurrency model and whether its use of Multiversion Concurrency Control (MVCC) fits your application's concurrency and performance needs.
  • Scaling Requirements: Assess how well Postgres's scaling capabilities (both vertical and horizontal) align with your anticipated growth in data volume and user load.

Features and Extensibility

  • Advanced Features: Review the advanced features of PostgreSQL, such as full-text search, advanced indexing, window functions, and see if they meet your needs.
  • Extensibility: Consider the extensibility of Postgres, including the ability to write stored procedures in various languages, create custom data types, and use extensions like PostGIS for geospatial data.

Operational Complexity

  • Administration and Maintenance: Understand the level of effort required for routine database administration, backups, updates, and maintenance with PostgreSQL.
  • Learning Curve: Assess the learning curve for your team, especially if they are more familiar with other database systems.

Security

  • Security Features: Review PostgreSQL's security features, including authentication, authorization, encryption, and compliance with your industry's security standards.
  • Access Controls: Evaluate PostgreSQL’s support for fine-grained access controls and its ability to meet your application’s security and privacy requirements.

Ecosystem and Community

  • Community Support: Consider the strength and activity of the PostgreSQL community, which can be a valuable resource for troubleshooting, best practices, and third-party tools.
  • Third-party Tools and Integrations: Assess the availability and quality of third-party tools and integrations for tasks like monitoring, performance tuning, and high availability.

High Availability and Disaster Recovery

  • Replication Capabilities: Look into PostgreSQL’s replication capabilities and whether they meet your requirements for high availability and load balancing.
  • Backup and Recovery: Evaluate the ease and flexibility of backup and recovery processes in PostgreSQL, including point-in-time recovery.

Migration Considerations

  • Data Migration: If migrating from another database system, consider the complexity and tools available for data migration to PostgreSQL.
  • Compatibility Issues: Identify any potential compatibility issues with SQL dialects, stored procedures, or proprietary features from other database systems.

Cost Implications

  • Total Cost of Ownership: While PostgreSQL is open-source and free to use, consider the total cost of ownership, including hardware, cloud hosting (if applicable), maintenance, and potential consultancy fees.

By carefully considering these factors, you can make a well-informed decision about whether PostgreSQL is the right database solution for your project, ensuring it will meet your current needs and scale with your future growth.

How to set up

Navigate to the Feathery form that you want to connect to Postgres. Click on the Integrations tab.

Open the PostgreSQL integration and fill out the settings with your database connection information. The username and password for authenticating the connection are optional if your database isn’t authenticated. Make sure your database has the IP addresses 52.52.169.44 and 54.177.134.134 whitelisted so we can connect.

Specify the form and hidden fields you would like to save to your database.

Click Save. Feathery will immediately attempt to establish a connection to your database and create the initial table. If this is unsuccessful, you’ll see an error.

With an active integration, every time you update the fields in your Postgres configuration, Feathery will update the schema of the existing table accordingly.

Every time a user starts filling out your form, Feathery will also send the data to your Postgres table.

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the

"When inside of" nested selector

system.

This is a H6

This is a Link

  • This is a list item
  • This is another list item here
Get started with
Feathery

Request access to stay in the loop

Thanks for joining
the waitlist
Done
Oops! Something went wrong while submitting the form.