Skip to main content

Case Study: How Yad2 Simplified Schema Management with Atlas

· 5 min read
Noa Rogoszinski
Noa Rogoszinski
DevRel Engineer

Company Background

Yad2 is the most popular online marketplace in Israel for buying and selling second-hand items. Since launching in 2005, Yad2 has offered an organized platform for the sale of various goods, including vehicles, housing, rentals, furniture, electronics, and more. With millions of users and listings, Yad2 handles a significant amount of data and requires a robust database management system.

The Bottleneck: All Paths Lead to the DBA

Initially, all developers at Yad2 had permission to run DDL (Data Definition Language) commands, allowing each of them to alter the structure of the production database. However, as the team grew, engineers would run into conflicts and inconsistencies caused by parallel work. Developers would often overwrite each other's changes or introduce locks on the database, causing production issues. Requiring engineers to document their changes in JIRA or Slack was helpful, but it still proved difficult to keep track of everything that was happening.

To improve the reliability of schema changes, Yad2 brought on a DBA, Yoni Sade, to take the reins, and restricted the developers' permissions to DML (Data Manipulation Language) commands. This change meant that they could no longer make schema changes, leaving those tasks to the new DBA.

The motivation for this change was sound: by limiting schema changes to fewer, more experienced DBAs, they could prevent migration conflicts and ensure the integrity of the database structure. However, putting this limitation on the development environment created a significant bottleneck — every time a developer needed to make a schema change, they had to go through the DBA, slowing down the development process considerably.

Yad2 has a very complex and interconnected schema containing thousands of objects, so each change needs to be made very carefully. Even for a seasoned DBA, this process takes a lot of time and attention.

Searching for a Solution

Yoni began looking for a solution that would allow the team to have more agency over schema changes without risking the infrastructure's integrity. The team tested schema migration tools out on the market, but versioned workflows that still required manual planning without guaranteeing consistency between environments were not enough.

Ultimately, they were looking for a tool similar to Terraform, which they were already using for infrastructure as code. "We wanted to have a source of truth in code or a file-formatted representation of our schemas. Since we use Terraform, we wanted something similar that everybody would already feel comfortable with," Yoni said.

Choosing Atlas

After evaluating several options, Yoni's team came across Atlas, a database schema as code tool that implements concepts similar to Terraform but for databases. Not only did Atlas fit the description they were searching for, they also discovered more features that simplified the integration of Atlas into their existing workflow.

"We have many GitHub repositories, so integration with GitHub was also an important consideration," Yoni explained. Atlas's GitHub integration is a convenient way for teams to host their schema definition files on a shared platform, and there are Atlas Actions that can be used to automate the proposal, linting, and approval of schema changes on GitHub's platform. "I found Atlas's GitHub support very natural for us to use."

The Outcome

Choosing Atlas not only gave Yad2 a familiar way to manage their database schema as code, but it also provided a direct and easy to implement solution to their bottleneck by integrating with their already-existing GitHub repositories.

To make schema changes, a developer now creates a new branch in GitHub, makes the necessary changes to the schema files, and opens a pull request (PR). This automatically triggers Atlas Actions that write a migration based on the suggested changes, lint the proposed migration, and report the results in a comment on the PR.

The developer is now receiving direct feedback from Atlas about any potential risks from these changes and can work on them without needing to wait for the DBA. Moreover, the DBA gets a detailed account of the schema changes and can automatically apply them to production by simply merging the PR.

In addition to Atlas being a direct solution to their bottleneck, Yoni also noted other benefits of using Atlas:

  • Improved Communication. With schema changes proposed through pull requests, there is a clear record of what changes were made, why they were made, and who made them without relying on manual documentation.
  • Compliant Schema Changes. By using custom schema policies with the migrate/lint action, any proposed change that doesn't adhere to the team's schema policy is flagged in the CI process.
  • Tracking Across Environments. The Atlas Cloud UI provides users with an Entity Relationship Diagram (ERD) to visualize their schemas and schema changes, as well as drift detection to alert the team of any inconsistencies between the developement and production environments.

Getting Started

By managing your schema as code, using custom schema policy, and configuring Atlas Actions in CI/CD, you can automate migration creation and review so the DBA is left with only a final review and approval.

If your team is struggling with the bottleneck of many developers relying on fewer DBAs to deploy schema changes like Yad2 was, Atlas could be the solution for you.

→ Start with the quickstart

→ Join our Discord

→ And begin managing your schemas as code.

Snowflake Schema Management: Atlas vs schemachange vs SnowDDL

· 13 min read

Snowflake's cloud data platform has transformed data warehousing, yet many teams still manage schema changes using manually-composed SQL scripts and verification processes. As data teams grow and pipelines become more complex, these approaches often become more challenging to maintain and much riskier to use.

Schema changes in production environments can quickly lead to unexpected behavior and inconsistent data, and having more contributors increases the risk of human error leading to costly downtime or data integrity issues. These cases are familiar to many data teams because the traditional manual database deployment methods come with implicit risks.

To address these challenges, Snowflake teams have begun adopting tools to automate schema changes, enforce safety checks, and ensure consistent deployments across environments.

In this post, we will compare three popular Snowflake schema management tools – Atlas, schemachange, and SnowDDL – and guide you in building reliable CI/CD pipelines to deploy schema changes with more confidence and control.

Teaching AI Agents to Manage Schema with Atlas

· 3 min read
Dor Avraham
Dor Avraham

AI agents are becoming a core part of daily development. We utilize them to help us write code, fix syntax errors, and perform tasks that speed up routine work. However, when it comes to high-risk operations like database schema changes, we are more hesitant to hand off control to these AI agents.

While you can leverage the AI agent's abilities to generate migrations and make suggestions, you need to ensure the safety of these operations.

Atlas is a database schema management tool that ensures safe and reliable schema changes. Users define their schemas as code, and Atlas performs migrations based on changes to these code definitions. With Atlas, you can configure lint checks, pre-migration validations, and schema testing, making it an ideal counterpart for AI agents.

In this post, we'll show you how to configure popular AI agents to work with Atlas to ensure that schema changes made by the agent are secure.

Case Study: How Beck's Hybrids Improved Reliability with Atlas

· 5 min read
Noa Rogoszinski
Noa Rogoszinski
DevRel Engineer

"I rely on Atlas because I know it works and it gets the job done."

– Hicaro Adriano, Principal Software Engineer, Beck's Hybrids

Company Background

Founded in 1937, Beck's Hybrids appreciates the farmers who have helped them grow to become the largest family-owned retail seed company and third-largest seed brand in the United States. This position gives Beck's access to the best genetics and trait technologies from suppliers worldwide. Beck's strives to provide all customers with the tools, support, and resources they need to succeed.

The Obstacle: Unreliable Migrations

The Beck's Hybrids IT department began with a few engineers managing mainframes. Over the years, the development team has grown in an effort to provide customers and internal users with various applications that help power all aspects of the business. These systems include "FARMServer®", a precision farming platform that helps farmers make decisions based on optimal planting windows and growth stage modeling.

FARMServer is a complex, Microsoft SQL Server-based application that has grown to include a wide range of features and functionalities. Its codebase heavily utilizes stored procedures, views, and custom types to handle the intricate logic required for precision farming.

Beck's has traditionally developed its technologies in-house, and that includes their schema management system for these applications. Their system was a semi-automatic process that required manually written migrations, which can be quite fragile.

Their process required developers to manually track which revisions had been applied, carefully compare that to the current state in production, and then apply the remaining changes one-by-one - "hoping they wouldn’t fail." With no batch transactions or safety mechanisms in place, even a small mistake often left production in an inconsistent state.

Atlas v0.36: Snowflake Beta, PostgreSQL Partitions, Azure DevOps, and More

· 13 min read
Rotem Tamir
Building Atlas

Hey everyone!

We're excited to announce the release of Atlas v0.36 with a comprehensive set of new features and improvements that further strengthen Atlas as your go-to database schema management tool:

  • Snowflake Driver Beta - Atlas now supports Snowflake databases in beta, expanding our data warehouse schema management capabilities.
  • PostgreSQL Partitions - Declarative management of PostgreSQL partitions has long been a top community request, and we are excited to say it's now available!
  • Azure DevOps Integration - Seamless CI/CD integration with Azure DevOps pipelines for database schema management.
  • Google Spanner Beta - Beta support for Google Cloud Spanner, bringing Atlas to Google's horizontally scalable and globally distributed database.
  • Datadog SIEM Support - Enhanced security monitoring with Datadog integration for audit logs and schema monitoring.
  • ORM Schema Linting - Advanced schema validation and policy enforcement for all supported ORM integrations.
  • Explain Pipelines Errors - New AI-powered error explanations to help you quickly understand and resolve deployment errors with Atlas Pipelines.

Schema Rules: Enforcing Database Policy with Atlas

· 4 min read
Chinh Nguyen
Software Engineer

Atlas manages and migrates database schemas by following modern DevOps principles. This includes allowing teams to define and enforce custom rules for their database schemas to ensure consistency, compliance, and best practices throughout the development lifecycle.

Here's a breakdown of what Atlas Schema Rules are, why they are beneficial, and how to implement them:

Tame Complex PostgreSQL Schemas with Atlas, a Terraform for Databases

· 7 min read
Rotem Tamir
Building Atlas

As applications grow, their underlying database schemas inevitably grow more complex. What often starts as an afterthought handled by a single developer quickly turns into a critical, high-risk responsibility that demands precision and discipline.

Tools like Flyway and Liquibase automate the application of schema changes, but they stop short of addressing the real pain points: planning and validating those changes before they hit production. These steps remain largely manual, error-prone, and disliked by most developers.

Atlas is designed to fill this gap by automating the entire lifecycle of schema changes. Inspired by Terraform, Atlas provides a declarative approach to database schema management, enabling teams to define their schemas as code and automate the planning, validation, and application of changes.

Why Terraform for Databases?

Infrastructure teams have standardized on tools like Terraform to manage cloud resources declaratively. Databases, despite being critical infrastructure, often remain outside this workflow. Schema changes are still handled manually or with ad-hoc migration scripts, leading to drift, unpredictability, and production risks.

Atlas v0.35: Oracle, Bootstrap Projects, and more

· 9 min read
Rotem Tamir
Building Atlas

Hey everyone!

It's been just over a week since our last release, and we are back with another batch of exciting features and improvements. Here's what's in store for you in Atlas v0.35:

  • Bootstrap Projects - You can now bootstrap SQL projects with one command, making it easier to get started with Atlas. Using the new split and write template functions, you can now create a code representation of your database schema in SQL or HCL format to turn your database into code in no time.
  • Atlas for Oracle in Beta - We are excited to announce that Atlas is now in beta for Oracle databases.

Case Study: How Darkhorse Emergency Tamed Complex PostgreSQL Schemas with Atlas

· 7 min read
Noa Rogoszinski
Noa Rogoszinski
DevRel Engineer

"When I came across Atlas and saw it described as Terraform for your database, it immediately resonated. That’s exactly what we needed. Just like Terraform solved our AWS problems, we needed something to bring that same level of control to our data."

– Maciej Bukczynski, Director of Technology, Darkhorse Emergency

Company Background

Darkhorse Emergency is a SaaS decision analytics platform for public safety services, primarily fire departments, that uses data and predictive analytics to optimize operations and resource allocation. Their platform allows for decisions to be simulated and assessed before being made, creating more transparency amongst public service teams and those that depend on them.

The Bottleneck: Evolving a Logic-Heavy Postgres Schema

"For us PostgreSQL isn't just storage. It's the core of our business logic. "

Darkhorse Emergency's platform is built on a complex PostgreSQL database that serves as the backbone for their application. It is an elaborate system that processes many types of data, including 911 calls, census reports, and other public data sources.

By maintaining a carefully designed chain of views, functions, custom types, and triggers, the team is able to offload complex calculations and logic to the database. This ensures that their application can efficiently handle the demands of public safety services. "For us PostgreSQL isn't just storage. It's the core of our business logic," said Maciej Bukczynski, Director of Technology at Darkhorse Emergency.

However, this complexity presents a significant challenge when it comes to evolving the database schema. With so much happening within the database itself, the team very quickly ran into the limitations that come with common migration tools. "For example, we might have a view that feeds into 50 other views; if we want to make a change to that, we need to carefully recreate dependencies and ensure that everything remains consistent", Bukczynski explained.

The team initially tried to use classic migration tools like Flyway and Liquibase, but found that manually planning and applying migrations in such an intricate system was not only time-consuming but error-prone.

Atlas v0.34: Ad-hoc Approval Policies and Terraform Docs

· 3 min read
Rotem Tamir
Building Atlas

Hey everyone!

It's been just over two weeks since our last release, and we are back with another batch of exciting features and improvements. Here's what's in store for you in Atlas v0.34.