Latest Updates

Documenting code, one commit at a time.

Database Compatibility: Adapting Queries for PostgreSQL

When developing applications across different database systems, ensuring compatibility in your queries is crucial. Minor differences in SQL syntax can lead to unexpected errors and application downtime. Let's explore a practical example of adapting queries for PostgreSQL.

The Challenge: Date Extraction

MySQL provides functions like YEAR() and MONTH() to extract year and month values from

Read more
PHP PostgreSQL

Improving Data Handling and Stability in Landing

The landing project focuses on creating engaging user experiences. Recent work has concentrated on refining data storage and ensuring application stability.

Addressing PostgreSQL DISTINCT Errors with JSONB

A recurring issue involved PostgreSQL's inability to efficiently use DISTINCT with JSON columns. This manifested as numerous daily errors, particularly within the Campaign editor's

Read more

Recovering PostgreSQL Report Functions in Laravel

Introduction

When performing database migrations, especially in multi-tenant environments, it's crucial to ensure all aspects of the schema are correctly applied to each tenant. This post explores a scenario in a Laravel application where PostgreSQL functions were unintentionally dropped during a tenant migration and how they were recovered.

The Problem: Silently Missing Functions

Read more
PHP PostgreSQL

Seeding PostgreSQL: Avoiding SQL Escaping Issues

When working with databases, especially PostgreSQL, ensuring data integrity during the seeding process is crucial. A common pitfall involves SQL escaping issues, particularly when dealing with special characters within string values.

The Problem: Escaping Hell in Seed Migrations

Initial attempts to populate a database often involve seed migrations. These migrations contain SQL statements to

Read more

Multi-Tenancy Done Right: Tenant-Specific Database Tables

When building a multi-tenant application with Laravel and PostgreSQL, handling data isolation is crucial. One effective approach is to use separate database schemas for each tenant. This provides a high level of isolation, ensuring that data from different tenants remains completely separate. Let's explore how this works in practice within the Reimpact platform.

The Problem: Shared Tables

Read more

Ensuring Data Integrity: Restoring Global Rates in a Laravel Application

Introduction

Maintaining data accuracy across all tenants in a multi-tenant application can be challenging. This post explores how to correct an issue where global rates were inadvertently made tenant-specific in a Laravel application, impacting data integrity.

The Problem: Tenant-Scoped Rates

Originally, the rates table was intended to store global rates applicable to all tenants.

Read more

Evolving Data Structures in Platform Notifications

The platform project is undergoing continuous improvement to enhance its notification system.

The Challenge: Data Structure Evolution

Initially, the notification system stored data in a simple text column. However, as the platform evolved, the need for richer, structured data within notifications became apparent. This required a transition to a more flexible data type.

The Solution:

Read more