meta
and tags
should be structured in your YAML files. Instead of manually updating potentially hundreds of files, you can use MetaMove - a CLI tool specifically designed to automate this migration.
What Changed in dbt 1.10?
Starting in dbt 1.10, you will receive deprecation warnings for dbt code that will become invalid in the future, including custom inputs like unrecognized resource properties and configurations. Some properties are moving to configs, includingmeta
and tags
.
The key change affects how you define meta
and tags
properties across your dbt project:
Before (dbt < 1.10):
Why This Change Matters
Previously, dbt allowed you to configure inputs largely unconstrained. Without a set of strictly defined inputs, it becomes challenging to validate your project’s configuration, creating unintended issues such as silently ignoring misspelled properties and configurations. This change provides several benefits:- Better Validation: dbt can now catch misspelled properties and configurations
- Consistent Structure: All custom attributes must be nested under the
meta
config - Future-Proofing: Prevents conflicts when dbt introduces new reserved properties
Automated Migration with MetaMove
Rather than manually updating your YAML files, use MetaMove - a CLI tool built specifically for this migration. MetaMove automatically transforms your files while preserving comments and formatting.Installation
Install MetaMove using pipx (recommended):Basic Usage
Transform a single YAML file:Safe Migration Process
MetaMove follows a safe-by-default approach:-
Test First: By default, transformed files are saved to a
transformed
directory: - Review Changes: Compare the original and transformed files to ensure accuracy.
-
Apply In-Place: Once confident, transform files in place:
Advanced Options
Specify a custom output directory:.yml
and .yaml
files, so wildcards work safely:
What MetaMove Handles
MetaMove intelligently processes:- Nested Structures:
meta
andtags
at any nesting level, including insidecolumns
- Existing Config Blocks: Merges new values into existing
config
sections - All YAML Types: Dictionaries, lists, and scalar values
- Formatting Preservation: Maintains your comments and whitespace
- Complex Cases: Handles edge cases following dbt precedence rules
Manual Migration (If Needed)
If you prefer to migrate manually or need to understand the changes, here are the key transformations:Model-Level Changes
Before:Column-Level Changes
Before:Source-Level Changes
Before:Other dbt 1.10 Changes to Consider
While migratingmeta
and tags
, be aware of other properties moving to configs:
freshness
(for sources)docs
group
access
config
block following the same pattern as meta
and tags
.
Handling Warnings During Migration
If you’re using--warn-error
flags that promote warnings to errors, you may need to adjust your configuration during migration:
Testing Your Migration
After migrating your files:-
Run dbt parse: Ensure your project parses without errors:
-
Check for Warnings: Run a simple command to verify warnings are resolved:
-
Run Tests: Execute your test suite to ensure functionality is preserved:
Best Practices
- Backup First: Always backup your project before running any migration tool
- Test in Development: Run the migration in a development branch first
- Review Changes: Use git diff to review all changes before committing
- Migrate Incrementally: For large projects, consider migrating one directory at a time
- Update CI/CD: Ensure your deployment processes work with the new structure
Troubleshooting Common Issues
”Config block already exists” Errors
If you have existingconfig
blocks, MetaMove will merge the new properties. However, if you encounter conflicts:
- Review the specific file causing issues
- Manually resolve conflicts between existing and new config properties
- Re-run MetaMove on the corrected file
Unexpected YAML Structure
If your YAML files have unusual structures that MetaMove doesn’t handle:- Note the problematic files in the tool output
- Manually migrate these files using the patterns shown above
- Use MetaMove for the remaining standard files
Performance with Large Projects
For projects with hundreds of YAML files:- Run MetaMove on subdirectories rather than the entire project at once
- Use the
-o
flag to organize transformed files by directory - Process files in batches to make review manageable
Conclusion
Migrating to dbt 1.10’s newmeta
and tags
structure is essential for maintaining a robust, future-proof dbt project. MetaMove makes this migration straightforward by automating the tedious work while preserving your careful formatting and comments.
The goal is to enable you to work with more safety, feedback, and confidence going forward. By moving meta
and tags
under config
blocks, dbt can provide better validation and prevent the subtle issues that arise from misspelled properties or unintended conflicts.
Start your migration today: