June 21st, 2024

Automatically setup pgAdmin with a Docker database

Developer experience is enhanced by configuring a PostgreSQL local environment with Docker Compose. Defining variables and leveraging folders streamlines setup. Integrating pgAdmin automates connections, improving efficiency and simplifying future deployments.

Read original articleLink Icon
Automatically setup pgAdmin with a Docker database

Developer experience is crucial in reducing cognitive load and improving efficiency. Configuring a PostgreSQL local developer environment using Docker Compose can streamline the setup process. By defining environment variables like POSTGRES_DB, POSTGRES_USER, and POSTGRES_PASSWORD, a basic PostgreSQL container can be created with specific configurations. Additionally, leveraging the docker-entrypoint-initdb.d folder allows for automatic initialization of databases with predefined structures and data. Using volumes, scripts can be easily added to the container for more complex setups. Integrating pgAdmin, a web-based PostgreSQL administration tool, into the Docker environment further enhances the development experience. By customizing configurations and setting up servers.json files, pgAdmin can be automatically connected to the PostgreSQL database. While the setup may involve some initial complexity, encapsulating it in a Docker image or script can simplify future deployments and ensure a seamless development environment for teams.

Related

Schema changes and the Postgres lock queue

Schema changes and the Postgres lock queue

Schema changes in Postgres can cause downtime due to locking issues. Tools like pgroll help manage migrations by handling lock acquisition failures, preventing application unavailability. Setting lock_timeout on DDL statements is crucial for smooth schema changes.

Postgres Schema Changes and Locking

Postgres Schema Changes and Locking

Schema changes in Postgres can cause downtime by locking out reads and writes. Migration tools help mitigate issues. Breakages during migrations can affect client apps or lock database objects, leading to unavailability. Long queries with DDL statements can block operations. Setting lock_timeout on DDL statements can prevent queuing. Tools like pgroll offer backoff and retry strategies for lock acquisition failures. Understanding schema changes and DDL impact helps ensure smoother migrations and less downtime.

Deep Dive into GitHub Actions Docker Builds with Docker Desktop

Deep Dive into GitHub Actions Docker Builds with Docker Desktop

The beta release of Docker Desktop 4.31 introduces a feature enabling users to inspect GitHub Actions builds within the platform. It offers detailed performance metrics, cache utilization, and configuration details for enhanced visibility and collaboration.

Software Engineering Practices (2022)

Software Engineering Practices (2022)

Gergely Orosz sparked a Twitter discussion on software engineering practices. Simon Willison elaborated on key practices in a blog post, emphasizing documentation, test data creation, database migrations, templates, code formatting, environment setup automation, and preview environments. Willison highlights the productivity and quality benefits of investing in these practices and recommends tools like Docker, Gitpod, and Codespaces for implementation.

Post-mortem: Postgres out of shared memory error

Post-mortem: Postgres out of shared memory error

An investigation into PostgreSQL's memory error highlighted insights on transaction isolation and lock management. Increasing max_locks_per_transaction can resolve the "out of shared memory" issue, crucial for maintaining data consistency and preventing memory errors.

Link Icon 1 comments
By @dvfjsdhgfv - 4 months
Why did you use `version: "3"`?