> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paradime.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Schema Changes From Baseline

> Elementary Data - Schema Baseline: Compare schema changes from baseline in dbt™ projects using Paradime. Ensure data integrity and accuracy.

The `elementary.schema_changes_from_baseline` test checks for schema changes against baseline columns defined in a source's or model's configuration. For this test to work, the configuration should contain columns and data types.

### Sources configuration&#x20;

<Tabs>
  <Tab title="Sources">
    ```yaml theme={"system"}
    version: 2

    sources:
      - name: < source name >
        database: < database name >
        schema: < schema name >
        tables:
          - name: < table name >
            columns:
              - name: < column 1 >
                data_type: < data type 1 >
              - name: < column 2 >
                data_type: < data type 2 >
            tests:
              - elementary.schema_changes_from_baseline
    ```
  </Tab>

  <Tab title="Sources example">
    ```yaml theme={"system"}
    version: 2

    sources:
      - name: < source name >
        database: < database name >
        schema: < schema name >
        tables:
          - name: < table name >
            columns:
              - name: < column 1 >
                data_type: < data type 1 >
              - name: < column 2 >
                data_type: < data type 2 >
            tests:
              - elementary.schema_changes_from_baseline
    ```
  </Tab>
</Tabs>

### Models configuration

<Tabs>
  <Tab title="Models">
    ```yaml theme={"system"}
    version: 2

    models:
      - name: < model name >
        columns:
          - name: < column 1 >
            data_type: < data type 1 >
          - name: < column 2 >
            data_type: < data type 1 >
        tests:
          - elementary.schema_changes_from_baseline
    ```
  </Tab>

  <Tab title="Models example">
    ```yaml theme={"system"}
    version: 2

    models:
      - name: login_events
        columns:
          - name: event_name
            data_type: text
          - name: event_id
            data_type: integer
        tests:
          - elementary.schema_changes_from_baseline:
              tags: ["elementary"]
    ```
  </Tab>
</Tabs>

### Supported Parameters

* `fail_on_added`: If set, the test will fail if there are columns in the table that do not exist in the baseline (default: False).
* `enforce_types`: If set, the test will raise an error if there are columns defined without a data type (default: False).

### Auto-generate Baseline Schema

To make it easier to configure schema tests, Elementary provides dbt operations to auto-generate tests configuration based on the existing schemas.

#### Usage

```bash theme={"system"}
# Generate a schema changes from baseline test for all sources
dbt run-operation elementary.generate_schema_baseline_test

# Generate a test for a specific model/source named "orders"
dbt run-operation elementary.generate_schema_baseline_test --args '{"name": "orders"}'

# Generate tests for all sources and all models
dbt run-operation elementary.generate_schema_baseline_test --args '{"include_models": true}'

# Generate tests with "fail_on_added" and "enforce_types" set to true
dbt run-operation elementary.generate_schema_baseline_test --args '{"fail_on_added": true, "enforce_types": true}'
```

This command will output the generated configuration for the schema changes from baseline test, which can be copied and pasted into the relevant `yml` file.


## Related topics

- [Schema Changes](/integrations/elementary-data/schema-tests/schema-changes.md)
- [Schema Tests](/integrations/elementary-data/schema-tests/index.md)
- [Github Actions to Paradime Bolt](/guides/migrations/migrating-dbt-tm-jobs-from-github-actions-to-paradime-bolt.md)
- [Test Code Changes On Pull Requests](/products/bolt/creating-schedules/templates/ci-cd-templates/test-code-changes-on-pull-requests.md)
- [Incremental Materialization](/guides/dbt-fundamentals/model-materializations/incremental-materialization/index.md)
