All Projects → zonkyio → embedded-postgres-binaries

zonkyio / embedded-postgres-binaries

Licence: Apache-2.0 license
Lightweight bundles of PostgreSQL binaries with reduced size intended for testing purposes.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to embedded-postgres-binaries

Netdisco
A web-based network management tool.
Stars: ✭ 291 (+334.33%)
Mutual labels:  postgresql-database
Guardian auth
The Guardian Authentication Implementation Using Ecto/Postgresql Elixir Phoenix [ User Authentication ]
Stars: ✭ 15 (-77.61%)
Mutual labels:  postgresql-database
Apijson
🚀 零代码、热更新、全自动 ORM 库,后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构。 🚀 A JSON Transmission Protocol and an ORM Library for automatically providing APIs and Docs.
Stars: ✭ 12,559 (+18644.78%)
Mutual labels:  postgresql-database
Zapatos
Zero-abstraction Postgres for TypeScript: a non-ORM database library
Stars: ✭ 448 (+568.66%)
Mutual labels:  postgresql-database
Binexport
Export disassemblies into Protocol Buffers
Stars: ✭ 586 (+774.63%)
Mutual labels:  postgresql-database
Niklick
Rails Versioned API solution template for hipsters! (Ruby, Ruby on Rails, REST API, GraphQL, Docker, RSpec, Devise, Postgress DB)
Stars: ✭ 39 (-41.79%)
Mutual labels:  postgresql-database
kodlama.io-javareactcamp
Java - React Camp Works | Kodlama.io
Stars: ✭ 33 (-50.75%)
Mutual labels:  postgresql-database
Embedded Database Spring Test
A library for creating isolated embedded databases for Spring-powered integration tests.
Stars: ✭ 196 (+192.54%)
Mutual labels:  postgresql-database
Postgresql book
Book about PostgreSQL (russian)
Stars: ✭ 780 (+1064.18%)
Mutual labels:  postgresql-database
Ercole
The Server component of the Ercole Project
Stars: ✭ 107 (+59.7%)
Mutual labels:  postgresql-database
Udacity Data Engineering Projects
Few projects related to Data Engineering including Data Modeling, Infrastructure setup on cloud, Data Warehousing and Data Lake development.
Stars: ✭ 458 (+583.58%)
Mutual labels:  postgresql-database
Aspnet Core React Template
ASP.NET Core 3.1 / React SPA Template App
Stars: ✭ 539 (+704.48%)
Mutual labels:  postgresql-database
Fullstack Apollo Express Postgresql Boilerplate
💥 A sophisticated GraphQL with Apollo, Express and PostgreSQL boilerplate project.
Stars: ✭ 1,079 (+1510.45%)
Mutual labels:  postgresql-database
Pgdiff
Compares the PostgreSQL schema between two databases and generates SQL statements that can be run manually against the second database to make their schemas match.
Stars: ✭ 333 (+397.01%)
Mutual labels:  postgresql-database
Datanymizer
Powerful database anonymizer with flexible rules. Written in Rust.
Stars: ✭ 147 (+119.4%)
Mutual labels:  postgresql-database
pern-stack-auth
📋 Repair. PERN stack todo app with jwt user authentication
Stars: ✭ 17 (-74.63%)
Mutual labels:  postgresql-database
Ephemeralpg
Quickly spin up a temporary PostgreSQL test databases
Stars: ✭ 39 (-41.79%)
Mutual labels:  postgresql-database
Postgresql Portable
Portable version of the PostgreSQL Database Server, for Windows
Stars: ✭ 237 (+253.73%)
Mutual labels:  postgresql-database
Postgresqltuner
Simple script to analyse your PostgreSQL database configuration, and give tuning advice
Stars: ✭ 2,214 (+3204.48%)
Mutual labels:  postgresql-database
Postgresql Action
GitHub Action to setup a PostgreSQL database
Stars: ✭ 91 (+35.82%)
Mutual labels:  postgresql-database

Embedded Postgres Binaries

Introduction

This project provides lightweight bundles of PostgreSQL binaries with reduced size that are intended for testing purposes. It is a supporting project for the primary io.zonky.test:embedded-database-spring-test and io.zonky.test:embedded-postgres projects. However, with a little effort, the embedded binaries can also be integrated with other projects.

Provided features

  • Lightweight bundles of PostgreSQL binaries with reduced size (~10MB)
  • Embedded PostgreSQL 11+ binaries even for Linux platform
  • Configurable version of PostgreSQL binaries

Projects using embedded binaries

Postgres version

The version of the postgres binaries can be managed by importing embedded-postgres-binaries-bom in a required version into your dependency management section.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.zonky.test.postgres</groupId>
            <artifactId>embedded-postgres-binaries-bom</artifactId>
            <version>13.2.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

A list of all available versions of postgres binaries is here: https://mvnrepository.com/artifact/io.zonky.test.postgres/embedded-postgres-binaries-bom

Supported architectures

By default, only dependencies for amd64 architecture, in the io.zonky.test:embedded-database-spring-test and io.zonky.test:embedded-postgres projects, are included. Support for other architectures can be enabled by adding the corresponding Maven dependencies as shown in the example below.

<dependency>
    <groupId>io.zonky.test.postgres</groupId>
    <artifactId>embedded-postgres-binaries-linux-i386</artifactId>
    <scope>test</scope>
</dependency>

Supported platforms: Darwin, Windows, Linux, Alpine Linux
Supported architectures: amd64, i386, arm32v6, arm32v7, arm64v8, ppc64le

Note that not all architectures are supported by all platforms, look here for an exhaustive list of all available artifacts: https://mvnrepository.com/artifact/io.zonky.test.postgres

Since PostgreSQL 10.0, there are additional artifacts with alpine-lite suffix. These artifacts contain postgres binaries for Alpine Linux with disabled ICU support for further size reduction.

Building from Source

The project uses a Gradle-based build system. In the instructions below, ./gradlew is invoked from the root of the source tree and serves as a cross-platform, self-contained bootstrap mechanism for the build.

Prerequisites

Git, JDK 6 or later and Docker

Be sure that your JAVA_HOME environment variable points to the jdk1.6.0 folder extracted from the JDK download.

Compiling non-native architectures rely on emulation, so it is necessary to register qemu-*-static executables:

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Note that the complete build of all supported architectures is now supported only on Linux platform.

Check out sources

git clone [email protected]:zonkyio/embedded-postgres-binaries.git

Make complete build

Builds all supported artifacts for all supported platforms and architectures, and also builds a BOM to control the versions of postgres binaries.

./gradlew clean install --parallel -Pversion=10.6.0 -PpgVersion=10.6

Note that the complete build can take a very long time, even a few hours, depending on the performance of the machine on which the build is running.

Make partial build

Builds only binaries for a specified platform/submodule.

./gradlew clean :repacked-platforms:install -Pversion=10.6.0 -PpgVersion=10.6

Build only a single binary

Builds only a single binary for a specified platform and architecture.

./gradlew clean install -Pversion=10.6.0 -PpgVersion=10.6 -ParchName=arm64v8 -PdistName=alpine

It is also possible to include the PostGIS extension by passing the postgisVersion parameter, e.g. -PpostgisVersion=2.5.2. Note that this option is not (yet) available for Windows and Mac OS platforms.

Optional parameters:

  • postgisVersion
    • default value: unset
    • supported values: a postgis version number (only 2.5.2+, 2.4.7+, 2.3.9+ versions are supported)
  • archName
    • default value: amd64
    • supported values: amd64, i386, arm32v6, arm32v7, arm64v8, ppc64le
  • distName
    • default value: debian-like distribution
    • supported values: the default value or alpine
  • dockerImage
    • default value: resolved based on the platform
    • supported values: any supported docker image
  • qemuPath

License

The project is released under version 2.0 of the Apache License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].