Skip to main content

devpi-postgresql: a PostgreSQL storage backend for devpi-server

Project description

devpi-postgresql: a PostgreSQL storage backend for devpi-server

This plugin adds a PostgreSQL storage backend for devpi-server.

Installation

devpi-postgresql needs to be installed alongside devpi-server.

You can install it with:

pip install devpi-postgresql

Requirements

At least PostgreSQL 9.5 is required for ON CONFLICT support.

Usage

When using the PostgreSQL storage, devpi-server expects an empty database. You have to create one like this: createdb devpi Depending on your PostgreSQL setup you have to create a user and grant it permissions on the new database like this:

CREATE ROLE devpi WITH LOGIN;
GRANT CREATE, CONNECT ON DATABASE devpi TO devpi;

Upon first initialization of devpi-server use --storage pg8000 to select the PostgreSQL backend.

By default it’ll use the devpi database on localhost port 5432. To change that, use storage pg8000:host=example.com,port=5433,database=devpi_prod. The possible settings are: database, host, port, unix_sock, user, password, ssl_check_hostname, ssl_ca_certs, ssl_certfile and ssl_keyfile.

If any of the “ssl” settings is specified, a secure Postgres connection will be made. Typically, the name of a file containing a certificate authority certificate will need to be specified via ssl_ca_certs. By default, the server’s hostname will be checked against the certificate it presents. Optionally disable this behavior with the ssl_check_hostname setting. Use ssl_certfile and ssl_keyfile to enable certificate-based client authentication.

All user/index files and metadata of devpi-server are stored in the database. A few things and settings are still stored as files in the directory specified by --serverdir.

Plugins like devpi-web don’t or can’t use the storage backend. They still handle their own storage.

Support

If you find a bug, use the issue tracker at Github.

For general questions use GitHub Discussions or the devpi-dev@python.org mailing list.

For support contracts and paid help contact mail at pyfidelity.com.

Changelog

3.0.0 (2022-03-18)

Deprecations and Removals

  • Require at least devpi-server 6.2.0.

Features

  • Support performance and memory optimizations enabled by devpi-server >= 6.2.0.

  • Support new storage interface from devpi-server 6.5.0 to keep files out of memory.

  • Files are stored in a temporary location and committed to the database in one shorter transaction block. This also reduces the time locks are held on the database.

  • Support memory optimizations enabled by devpi-server 6.5.0 to keep cache small.

  • Switch to native interface introduced in pg8000 1.17.0.

  • Stream files directly through database connection using COPY.

Bug Fixes

  • Reduce chances of conflicts by using a postgresql sequence for serials. This can cause serials with no changes due to gaps in the sequence in case of conflicts, but these are harmless.

2.0.0 (2020-04-14)

Deprecations and Removals

  • Python 3.4 isn’t supported anymore, Python 3.5 support will be dropped at its EOL in September 2020.

Features

  • Upgrade pg8000 to version 1.14.0 or newer and take advantage of its improved SSL interface.

1.1.0 (2020-01-31)

Features

  • fix #738: add ssl_cert_reqs, ssl_ca_certs, ssl_certfile and ssl_keyfile settings to the –storage=pg8000 option. Each setting corresponds to the similarly-named key (remove the initial ssl_) in the ssl parameter passed to pg8000.connect(). ssl_cert_reqs should be either “cert_optional” or “cert_required” and the other three settings are file names.

1.0.0 (2019-04-26)

Deprecations and Removals

  • Requires at least PostgreSQL 9.5 for ON CONFLICT support.

  • Dropped support for Python 2.x and PyPy2.

0.3.0 (2018-09-08)

Bug Fixes

  • Fixes required for bug fixes devpi-server 4.7.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devpi-postgresql-3.0.0.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

devpi_postgresql-3.0.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file devpi-postgresql-3.0.0.tar.gz.

File metadata

  • Download URL: devpi-postgresql-3.0.0.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: devpi-server/6.5.0.dev7 (py3.8.11; linux)

File hashes

Hashes for devpi-postgresql-3.0.0.tar.gz
Algorithm Hash digest
SHA256 7368a4db5a7b943d0d5bb34cb4409901ee380c6a9c2ce90401f239004d6d5bcf
MD5 8497884f8d7d0d747ee71a3a4de290ee
BLAKE2b-256 22bbff28620acf46bc283f249a5e86fd1e796e62a02b530168927a97296714b0

See more details on using hashes here.

File details

Details for the file devpi_postgresql-3.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for devpi_postgresql-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d04141afec0a3bd02e07c3e3a0583a9ede810fa9eb33783604c040a995d57627
MD5 35ef39ce4a3a36b38560bb01053f5a9b
BLAKE2b-256 aff79aad1c984963d520e8675b30355fcc08080c1722c1152a0a794309754d93

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page