From 252e6856889eca6ae4dbbf268fb7947136301380 Mon Sep 17 00:00:00 2001 From: kiwamizamurai <24860100+kiwamizamurai@users.noreply.github.com> Date: Fri, 26 Apr 2024 15:27:16 +0900 Subject: [PATCH 1/6] remove fal related resources --- .../blog/maching-learning-dbt-baton-pass.md | 14 ---- website/dbt-versions.js | 4 - .../6-the-rest-of-the-project.md | 2 +- website/docs/docs/community-adapters.md | 1 - .../core/connect-data-platform/fal-setup.md | 53 ------------- .../reference/resource-configs/fal-configs.md | 78 ------------------- website/sidebars.js | 2 - website/vercel.json | 5 -- 8 files changed, 1 insertion(+), 158 deletions(-) delete mode 100644 website/docs/docs/core/connect-data-platform/fal-setup.md delete mode 100644 website/docs/reference/resource-configs/fal-configs.md diff --git a/website/blog/maching-learning-dbt-baton-pass.md b/website/blog/maching-learning-dbt-baton-pass.md index 2c38cfd8983..c1cb05fceab 100644 --- a/website/blog/maching-learning-dbt-baton-pass.md +++ b/website/blog/maching-learning-dbt-baton-pass.md @@ -145,20 +145,6 @@ This wouldn’t solve for the ML engineer and her desire to inject custom ML mod It may be worth having python scripts live side by side dbt jobs and configurations. I can get better lineage and have one less tool to context switch to. -#### fal - -- [fal](https://github.com/fal-ai/fal): Makes dbt and python interoperable. Read in a dbt model as a pandas dataframe using a [ref statement](https://github.com/fal-ai/fal/blob/b20874ab957f8eb0f65c56d82e6bb85c717de4c6/examples/write_jupyter_notebook.md#example-9-use-dbt-from-a-jupyter-notebook)! - -#### How would this change my story? - -**A ref statement would mean the same thing to both my ML engineer and me.** - -We would work in the same dbt project for the entire workflow, not just part of it. We would align python scripts to dbt configurations for better lineage (see below). - -![Screenshot of fal installation instructions](/img/blog/2022-02-18-machine-learning-dbt-baton-pass/fal-install-1.png) - -![Second screenshot of fal installation instructions](/img/blog/2022-02-18-machine-learning-dbt-baton-pass/fal-install-2.png) - #### What are the tradeoffs of this tool path? When things would go wrong, it’d still be a messy jumble to figure out how SQL changes inform python changes and vice versa. And I would need to care about which infrastructure my python code is running on. But my gut tells me the tradeoff would be worth it because there’d be less notebooks to schedule, and it’d be easier to align machine learning logic to dbt logic. diff --git a/website/dbt-versions.js b/website/dbt-versions.js index 85d96f1156f..375d1419ee8 100644 --- a/website/dbt-versions.js +++ b/website/dbt-versions.js @@ -162,10 +162,6 @@ exports.versionedPages = [ "page": "reference/dbt-jinja-functions/local-md5", "firstVersion": "1.4", }, - { - "page": "reference/warehouse-setups/fal-setup", - "firstVersion": "1.3", - }, { "page": "reference/dbt-jinja-functions/set", "firstVersion": "1.2", diff --git a/website/docs/best-practices/how-we-structure/6-the-rest-of-the-project.md b/website/docs/best-practices/how-we-structure/6-the-rest-of-the-project.md index 4082f92b932..ed8fe8985e8 100644 --- a/website/docs/best-practices/how-we-structure/6-the-rest-of-the-project.md +++ b/website/docs/best-practices/how-we-structure/6-the-rest-of-the-project.md @@ -105,7 +105,7 @@ We’ve focused heavily thus far on the primary area of action in our dbt projec One important, growing consideration in the analytics engineering ecosystem is how and when to split a codebase into multiple dbt projects. Our present stance on this for most projects, particularly for teams starting out, is straightforward: you should avoid it unless you have no other option or it saves you from an even more complex workaround. If you do have the need to split up your project, it’s completely possible through the use of private packages, but the added complexity and separation is, for most organizations, a hindrance not a help, at present. That said, this is very likely subject to change! [We want to create a world where it’s easy to bring lots of dbt projects together into a cohesive lineage](https://github.com/dbt-labs/dbt-core/discussions/5244). In a world where it’s simple to break up monolithic dbt projects into multiple connected projects, perhaps inside of a modern monorepo, the calculus will be different, and the below situations we recommend against may become totally viable. So watch this space! - ❌ **Business groups or departments.** Conceptual separations within the project are not a good reason to split up your project. Splitting up, for instance, marketing and finance modeling into separate projects will not only add unnecessary complexity, but destroy the unifying effect of collaborating across your organization on cohesive definitions and business logic. -- ❌ **ML vs Reporting use cases.** Similarly to the point above, splitting a project up based on different use cases, particularly more standard BI versus ML features, is a common idea. We tend to discourage it for the time being. As with the previous point, a foundational goal of implementing dbt is to create a single source of truth in your organization. The features you’re providing to your data science teams should be coming from the same marts and metrics that serve reports on executive dashboards. There are a growing number of tools like [fal](https://blog.fal.ai/introducing-fal-dbt/) and [Continual.ai](http://Continual.ai) that make excellent use of this unified viewpoint. +- ❌ **ML vs Reporting use cases.** Similarly to the point above, splitting a project up based on different use cases, particularly more standard BI versus ML features, is a common idea. We tend to discourage it for the time being. As with the previous point, a foundational goal of implementing dbt is to create a single source of truth in your organization. The features you’re providing to your data science teams should be coming from the same marts and metrics that serve reports on executive dashboards. There are a growing number of tools like [Continual.ai](http://Continual.ai) that make excellent use of this unified viewpoint. - ✅ **Data governance.** Structural, organizational needs — such as data governance and security — are one of the few worthwhile reasons to split up a project. If, for instance, you work at a healthcare company with only a small team cleared to access raw data with PII in it, you may need to split out your staging models into their own project to preserve those policies. In that case, you would import your staging project into the project that builds on those staging models as a [private package](https://docs.getdbt.com/docs/build/packages/#private-packages). - ✅ **Project size.** At a certain point, your project may grow to have simply too many models to present a viable development experience. If you have 1000s of models, it absolutely makes sense to find a way to split up your project. diff --git a/website/docs/docs/community-adapters.md b/website/docs/docs/community-adapters.md index e17a43d5f61..ce852eb84fa 100644 --- a/website/docs/docs/community-adapters.md +++ b/website/docs/docs/community-adapters.md @@ -9,7 +9,6 @@ Community adapters are adapter plugins contributed and maintained by members of | ------------------------------------------ | -------------------------------- | ------------------------------------- | | [Clickhouse](/docs/core/connect-data-platform/clickhouse-setup) | [Databend Cloud](/docs/core/connect-data-platform/databend-setup) | [Doris & SelectDB](/docs/core/connect-data-platform/doris-setup) | | [DuckDB](/docs/core/connect-data-platform/duckdb-setup) | [Exasol Analytics](/docs/core/connect-data-platform/exasol-setup) | [Extrica](/docs/core/connect-data-platform/extrica-setup) | -| [fal - Python models](/docs/core/connect-data-platform/fal-setup) | [Firebolt](/docs/core/connect-data-platform/firebolt-setup) | [Greenplum](/docs/core/connect-data-platform/greenplum-setup) | | [Hive](/docs/core/connect-data-platform/hive-setup) | [IBM DB2](/docs/core/connect-data-platform/ibmdb2-setup) | [Impala](/docs/core/connect-data-platform/impala-setup) | | [Infer](/docs/core/connect-data-platform/infer-setup) | [iomete](/docs/core/connect-data-platform/iomete-setup) | [MindsDB](/docs/core/connect-data-platform/mindsdb-setup) | | [MySQL](/docs/core/connect-data-platform/mysql-setup) | [RisingWave](/docs/core/connect-data-platform/risingwave-setup) | [Rockset](/docs/core/connect-data-platform/rockset-setup) | diff --git a/website/docs/docs/core/connect-data-platform/fal-setup.md b/website/docs/docs/core/connect-data-platform/fal-setup.md deleted file mode 100644 index a640769a6d8..00000000000 --- a/website/docs/docs/core/connect-data-platform/fal-setup.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "fal setup (Python models)" -description: "Read this guide to learn about the fal warehouse setup in dbt." -meta: - maintained_by: fal.ai - authors: 'Features & Labels' - github_repo: 'fal-ai/fal' - pypi_package: 'dbt-fal' - min_core_version: 'v1.3.0' - max_core_version: 'v1.5.0' - cloud_support: Not Supported - min_supported_version: 'n/a' - slack_channel_name: '#tools-fal' - slack_channel_link: 'https://getdbt.slack.com/archives/C02V8QW3Q4Q' - platform_name: 'fal' - config_page: '/reference/resource-configs/fal-configs' ---- - -:::info Community plugin - -Some core functionality may be limited. If you're interested in contributing, check out the source code for each repository listed below. - -::: - -import SetUpPages from '/snippets/_setup-pages-intro.md'; - - - - - -## Setting up fal with other adapter - -[fal](http://github.com/fal-ai/fal) offers a Python runtime independent from what database you are using and integrates seamlessly with dbt. It works by downloading the data as a Pandas DataFrame, transforming it in a local Python runtime and uploading it to the database. The only configuration change you need to do is adding it to the `profiles.yml` and setting the `db_profile` property as the database profile you are already using. - -It will run all the SQL dbt models with the main adapter you specified in your `profiles.yml` and all the Python models are executed by the fal adapter. - -Example: - - - -```yaml -jaffle_shop: - target: dev_with_fal - outputs: - dev_with_fal: - type: fal - db_profile: dev_pg # This points to your main adapter - dev_pg: - type: postgres - ... -``` - - diff --git a/website/docs/reference/resource-configs/fal-configs.md b/website/docs/reference/resource-configs/fal-configs.md deleted file mode 100644 index 101e74f5f5a..00000000000 --- a/website/docs/reference/resource-configs/fal-configs.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: "fal configurations" -id: "fal-configs" ---- - -## Setting the `db_profile` - -The fal profile configuration needs the `db_profile` property set to the profile configuring your database for SQL models. - -fal will wrap around adapter and just handle Python models while letting all the SQL -needs to the underlying database adapter. - -fal will inherit the `threads` configuration from the `db_profile` unless explicitly specified. - -Example: - - - -```yaml -jaffle_shop: - target: dev_with_fal - outputs: - dev_with_fal: - type: fal - db_profile: dev_pg # This points to your main adapter - dev_pg: - type: postgres - ... -``` - - - -## Using `fal_environment` model configuration - -By creating a `fal_project.yml` in the same location as your `dbt_project.yml` and adding environment definitions in there: - - - -```yaml -environments: - - name: clustering - type: conda - packages: - - kmodes==0.12.2 - - - name: predict - type: venv - requirements: - - prophet -``` - - - -You can now reference any of these environments in your dbt Python models: - - - -```py -def model(dbt, fal): - dbt.config({ - "fal_environment": "clustering" - }) - - import pandas as pd - # kmodes is available because of the `fal_environment` being used - from kmodes.kmodes import KModes - - df: pd.DataFrame = dbt.ref("order_detailed") - df_train = df[["size", "is_vegan", "is_vegetarian", "is_keto", "shape"]] - - km_2 = KModes(n_clusters=3, init="Huang") - km_2.fit_predict(df_train) - df["cluster_label"] = km_2.labels_ - - return df -``` - - diff --git a/website/sidebars.js b/website/sidebars.js index 3bb85695879..d5c922ba89f 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -195,7 +195,6 @@ const sidebarSettings = { "docs/core/connect-data-platform/duckdb-setup", "docs/core/connect-data-platform/exasol-setup", "docs/core/connect-data-platform/extrica-setup", - "docs/core/connect-data-platform/fal-setup", "docs/core/connect-data-platform/firebolt-setup", "docs/core/connect-data-platform/greenplum-setup", "docs/core/connect-data-platform/ibmdb2-setup", @@ -750,7 +749,6 @@ const sidebarSettings = { "reference/resource-configs/impala-configs", "reference/resource-configs/clickhouse-configs", "reference/resource-configs/doris-configs", - "reference/resource-configs/fal-configs", "reference/resource-configs/firebolt-configs", "reference/resource-configs/greenplum-configs", "reference/resource-configs/infer-configs", diff --git a/website/vercel.json b/website/vercel.json index 8c4d8f90909..6140f820a84 100644 --- a/website/vercel.json +++ b/website/vercel.json @@ -1142,11 +1142,6 @@ "destination": "/docs/core/connect-data-platform/databend-setup", "permanent": true }, - { - "source": "/reference/warehouse-setups/fal-setup", - "destination": "/docs/core/connect-data-platform/fal-setup", - "permanent": true - }, { "source": "/reference/warehouse-setups/decodable-setup", "destination": "/docs/core/connect-data-platform/decodable-setup", From 6817dfcff3f0a1f72335387cfa8363cff8205b15 Mon Sep 17 00:00:00 2001 From: Mirna Wong <89008547+mirnawong1@users.noreply.github.com> Date: Thu, 8 Aug 2024 10:22:03 +0100 Subject: [PATCH 2/6] Update vercel.json --- website/vercel.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/website/vercel.json b/website/vercel.json index 9d0ab176280..74651ddf5eb 100644 --- a/website/vercel.json +++ b/website/vercel.json @@ -2,6 +2,16 @@ "cleanUrls": true, "trailingSlash": false, "redirects": [ + { + "source": "/docs/core/connect-data-platform/fal-setup", + "destination": "https://github.com/fal-ai/dbt-fal", + "permanent": true + }, + { + "source": "/reference/warehouse-setups/fal-setup", + "destination": "https://github.com/fal-ai/dbt-fal", + "permanent": true + }, { "source": "/docs/core/homebrew-install", "destination": "/docs/core/installation-overview", From a4aa303e9b330285545f7d4d1ec1b6f3bd985457 Mon Sep 17 00:00:00 2001 From: kiwamizamurai <24860100+kiwamizamurai@users.noreply.github.com> Date: Thu, 8 Aug 2024 19:53:54 +0900 Subject: [PATCH 3/6] merge main --- website/dbt-versions.js | 48 +- .../6-the-rest-of-the-project.md | 116 - website/vercel.json | 2111 +++-------------- 3 files changed, 395 insertions(+), 1880 deletions(-) delete mode 100644 website/docs/best-practices/how-we-structure/6-the-rest-of-the-project.md diff --git a/website/dbt-versions.js b/website/dbt-versions.js index 62641b8c3ee..7430450da50 100644 --- a/website/dbt-versions.js +++ b/website/dbt-versions.js @@ -1,4 +1,8 @@ exports.versions = [ + { + version: "1.9", + isPrerelease: true, + }, { version: "1.8", EOLDate: "2025-04-15", @@ -11,25 +15,17 @@ exports.versions = [ version: "1.6", EOLDate: "2024-07-31", }, +] + +exports.versionedPages = [ { - version: "1.5", - EOLDate: "2024-04-27", - }, - { - version: "1.4", - EOLDate: "2024-01-25", - }, - { - version: "1.3", - EOLDate: "2023-10-12", + "page": "/reference/resource-configs/target_database", + "lastVersion": "1.8", }, { - version: "1.2", - EOLDate: "2023-07-26", + "page": "/reference/resource-configs/target_schema", + "lastVersion": "1.8", }, -] - -exports.versionedPages = [ { "page": "reference/global-configs/indirect-selection", "firstVersion": "1.8", @@ -158,26 +154,6 @@ exports.versionedPages = [ "page": "reference/resource-properties/versions", "firstVersion": "1.5", }, - { - "page": "reference/dbt-jinja-functions/local-md5", - "firstVersion": "1.4", - }, - { - "page": "reference/dbt-jinja-functions/set", - "firstVersion": "1.2", - }, - { - "page": "reference/dbt-jinja-functions/zip", - "firstVersion": "1.2", - }, - { - "page": "reference/dbt-jinja-functions/cross-database-macros", - "firstVersion": "1.2", - }, - { - "page": "reference/resource-configs/grants", - "firstVersion": "1.2", - }, { "page": "reference/resource-configs/on_configuration_change", "firstVersion": "1.6", @@ -193,4 +169,4 @@ exports.versionedCategories = [ "category": "Build your metrics", "firstVersion": "1.6", } -] +] \ No newline at end of file diff --git a/website/docs/best-practices/how-we-structure/6-the-rest-of-the-project.md b/website/docs/best-practices/how-we-structure/6-the-rest-of-the-project.md deleted file mode 100644 index ed8fe8985e8..00000000000 --- a/website/docs/best-practices/how-we-structure/6-the-rest-of-the-project.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: "The rest of the project" -id: "6-the-rest-of-the-project" -description: The rest of the project. -displayText: The rest of the project. -hoverSnippet: The rest of the project. ---- - -### Project structure review - -So far we’ve focused on the `models` folder, the primary directory of our dbt project. Next, we’ll zoom out and look at how the rest of our project files and folders fit in with this structure, starting with how we approach YAML configuration files. - -```shell -models -├── intermediate -│ └── finance -│ ├── _int_finance__models.yml -│ └── int_payments_pivoted_to_orders.sql -├── marts -│ ├── finance -│ │ ├── _finance__models.yml -│ │ ├── orders.sql -│ │ └── payments.sql -│ └── marketing -│ ├── _marketing__models.yml -│ └── customers.sql -├── staging -│ ├── jaffle_shop -│ │ ├── _jaffle_shop__docs.md -│ │ ├── _jaffle_shop__models.yml -│ │ ├── _jaffle_shop__sources.yml -│ │ ├── base -│ │ │ ├── base_jaffle_shop__customers.sql -│ │ │ └── base_jaffle_shop__deleted_customers.sql -│ │ ├── stg_jaffle_shop__customers.sql -│ │ └── stg_jaffle_shop__orders.sql -│ └── stripe -│ ├── _stripe__models.yml -│ ├── _stripe__sources.yml -│ └── stg_stripe__payments.sql -└── utilities - └── all_dates.sql -``` - -### YAML in-depth - -When structuring your YAML configuration files in a dbt project, you want to balance centralization and file size to make specific configs as easy to find as possible. It’s important to note that while the top-level YAML files (`dbt_project.yml`, `packages.yml`) need to be specifically named and in specific locations, the files containing your `sources` and `models` dictionaries can be named, located, and organized however you want. It’s the internal contents that matter here. As such, we’ll lay out our primary recommendation, as well as the pros and cons of a popular alternative. Like many other aspects of structuring your dbt project, what’s most important here is consistency, clear intention, and thorough documentation on how and why you do what you do. - -- ✅ **Config per folder.** As in the example above, create a `_[directory]__models.yml` per directory in your models folder that configures all the models in that directory. for staging folders, also include a `_[directory]__sources.yml` per directory. - - The leading underscore ensures your YAML files will be sorted to the top of every folder to make them easy to separate from your models. - - YAML files don’t need unique names in the way that SQL model files do, but including the directory (instead of simply `_sources.yml` in each folder), means you can fuzzy find the right file more quickly. - - We’ve recommended several different naming conventions over the years, most recently calling these `schema.yml` files. We’ve simplified to recommend that these simply be labelled based on the YAML dictionary that they contain. - - If you utilize [doc blocks](https://docs.getdbt.com/docs/collaborate/documentation#using-docs-blocks) in your project, we recommend following the same pattern, and creating a `_[directory]__docs.md` markdown file per directory containing all your doc blocks for that folder of models. -- ❌ **Config per project.** Some people put _all_ of their source and model YAML into one file. While you can technically do this, and while it certainly simplifies knowing what file the config you’re looking for will be in (as there is only one file), it makes it much harder to find specific configurations within that file. We recommend balancing those two concerns. -- ⚠️ **Config per model.** On the other end of the spectrum, some people prefer to create one YAML file per model. This presents less of an issue than a single monolith file, as you can quickly search for files, know exactly where specific configurations exist, spot models without configs (and thus without tests) by looking at the file tree, and various other advantages. In our opinion, the extra files, tabs, and windows this requires creating, copying from, pasting to, closing, opening, and managing creates a somewhat slower development experience that outweighs the benefits. Defining config per directory is the most balanced approach for most projects, but if you have compelling reasons to use config per model, there are definitely some great projects that follow this paradigm. -- ✅ **Cascade configs.** Leverage your `dbt_project.yml` to set default configurations at the directory level. Use the well-organized folder structure we’ve created thus far to define the baseline schemas and materializations, and use dbt’s cascading scope priority to define variations to this. For example, as below, define your marts to be materialized as tables by default, define separate schemas for our separate subfolders, and any models that need to use incremental materialization can be defined at the model level. - -```yaml --- dbt_project.yml - -models: - jaffle_shop: - staging: - +materialized: view - intermediate: - +materialized: ephemeral - marts: - +materialized: table - finance: - +schema: finance - marketing: - +schema: marketing -``` - -:::tip Define your defaults. -One of the many benefits this consistent approach to project structure confers to us is this ability to cascade default behavior. Carefully organizing our folders and defining configuration at that level whenever possible frees us from configuring things like schema and materialization in every single model (not very DRY!) — we only need to configure exceptions to our general rules. Tagging is another area this principle comes into play. Many people new to dbt will rely on tags rather than a rigorous folder structure, and quickly find themselves in a place where every model _requires_ a tag. This creates unnecessary complexity. We want to lean on our folders as our primary selectors and grouping mechanism, and use tags to define groups that are _exceptions._ A folder-based selection like \*\*`dbt build --select marts.marketing` is much simpler than trying to tag every marketing-related model, hoping all developers remember to add that tag for new models, and using `dbt build --select tag:marketing`. -::: - -### How we use the other folders - -```shell -jaffle_shop -├── analyses -├── seeds -│ └── employees.csv -├── macros -│ ├── _macros.yml -│ └── cents_to_dollars.sql -├── snapshots -└── tests -└── assert_positive_value_for_total_amount.sql -``` - -We’ve focused heavily thus far on the primary area of action in our dbt project, the `models` folder. As you’ve probably observed though, there are several other folders in our project. While these are, by design, very flexible to your needs, we’ll discuss the most common use cases for these other folders to help get you started. - -- ✅ `seeds` for lookup tables. The most common use case for seeds is loading lookup tables that are helpful for modeling but don’t exist in any source systems — think mapping zip codes to states, or UTM parameters to marketing campaigns. In this example project we have a small seed that maps our employees to their `customer_id`s, so that we can handle their purchases with special logic. -- ❌ `seeds` for loading source data. Do not use seeds to load data from a source system into your warehouse. If it exists in a system you have access to, you should be loading it with a proper EL tool into the raw data area of your warehouse. dbt is designed to operate on data in the warehouse, not as a data-loading tool. -- ✅ `analyses` for storing auditing queries. The `analyses` folder lets you store any queries you want to use Jinja with and version control, but not build into models in your warehouse. There are limitless possibilities here, but the most common use case when we set up projects at dbt Labs is to keep queries that leverage the [audit helper](https://github.com/dbt-labs/dbt-audit-helper) package. This package is incredibly useful for finding discrepancies in output when migrating logic from another system into dbt. -- ✅ `tests` for testing multiple specific tables simultaneously. As dbt tests have evolved, writing singular tests has become less and less necessary. It's extremely useful for work-shopping test logic, but more often than not you'll find yourself either migrating that logic into your own custom generic tests or discovering a pre-built test that meets your needs from the ever-expanding universe of dbt packages (between the extra tests in [`dbt-utils`](https://github.com/dbt-labs/dbt-utils) and [`dbt-expectations`](https://github.com/calogica/dbt-expectations) almost any situation is covered). One area where singular tests still shine though is flexibly testing things that require a variety of specific models. If you're familiar with the difference between [unit tests](https://en.wikipedia.org/wiki/Unit_testing) [and](https://www.testim.io/blog/unit-test-vs-integration-test/) [integration](https://www.codecademy.com/resources/blog/what-is-integration-testing/) [tests](https://en.wikipedia.org/wiki/Integration_testing) in software engineering, you can think of generic and singular tests in a similar way. If you need to test the results of how several specific models interact or relate to each other, a singular test will likely be the quickest way to nail down your logic. -- ✅ `snapshots` for creating [Type 2 slowly changing dimension](https://en.wikipedia.org/wiki/Slowly_changing_dimension#Type_2:_add_new_row) records from [Type 1](https://en.wikipedia.org/wiki/Slowly_changing_dimension#Type_1:_overwrite) (destructively updated) source data. This is [covered thoroughly in the dbt Docs](/docs/build/snapshots), unlike these other folders has a more defined purpose, and is out-of-scope for this guide, but mentioned for completion. -- ✅ `macros` for DRY-ing up transformations you find yourself doing repeatedly. Like snapshots, a full dive into macros is out-of-scope for this guide and well [covered elsewhere](/docs/build/jinja-macros), but one important structure-related recommendation is to [write documentation for your macros](https://docs.getdbt.com/faqs/docs/documenting-macros). We recommend creating a `_macros.yml` and documenting the purpose and arguments for your macros once they’re ready for use. - -### Project splitting - -One important, growing consideration in the analytics engineering ecosystem is how and when to split a codebase into multiple dbt projects. Our present stance on this for most projects, particularly for teams starting out, is straightforward: you should avoid it unless you have no other option or it saves you from an even more complex workaround. If you do have the need to split up your project, it’s completely possible through the use of private packages, but the added complexity and separation is, for most organizations, a hindrance not a help, at present. That said, this is very likely subject to change! [We want to create a world where it’s easy to bring lots of dbt projects together into a cohesive lineage](https://github.com/dbt-labs/dbt-core/discussions/5244). In a world where it’s simple to break up monolithic dbt projects into multiple connected projects, perhaps inside of a modern monorepo, the calculus will be different, and the below situations we recommend against may become totally viable. So watch this space! - -- ❌ **Business groups or departments.** Conceptual separations within the project are not a good reason to split up your project. Splitting up, for instance, marketing and finance modeling into separate projects will not only add unnecessary complexity, but destroy the unifying effect of collaborating across your organization on cohesive definitions and business logic. -- ❌ **ML vs Reporting use cases.** Similarly to the point above, splitting a project up based on different use cases, particularly more standard BI versus ML features, is a common idea. We tend to discourage it for the time being. As with the previous point, a foundational goal of implementing dbt is to create a single source of truth in your organization. The features you’re providing to your data science teams should be coming from the same marts and metrics that serve reports on executive dashboards. There are a growing number of tools like [Continual.ai](http://Continual.ai) that make excellent use of this unified viewpoint. -- ✅ **Data governance.** Structural, organizational needs — such as data governance and security — are one of the few worthwhile reasons to split up a project. If, for instance, you work at a healthcare company with only a small team cleared to access raw data with PII in it, you may need to split out your staging models into their own project to preserve those policies. In that case, you would import your staging project into the project that builds on those staging models as a [private package](https://docs.getdbt.com/docs/build/packages/#private-packages). -- ✅ **Project size.** At a certain point, your project may grow to have simply too many models to present a viable development experience. If you have 1000s of models, it absolutely makes sense to find a way to split up your project. - -## Final considerations - -Overall, consistency is more important than any of these specific conventions. As your project grows and your experience with dbt deepens, you will undoubtedly find aspects of the above structure you want to change. While we recommend this approach for the majority of projects, every organization is unique! The only dogmatic advice we’ll put forward here is that when you find aspects of the above structure you wish to change, think intently about your reasoning and document for your team _how_ and _why_ you are deviating from these conventions. To that end, we highly encourage you to fork this guide and add it to your project’s README, wiki, or docs so you can quickly create and customize those artifacts. - -Finally, we emphasize that this guide is a living document! It will certainly change and grow as dbt and dbt Labs evolve. We invite you to join in — discuss, comment, and contribute regarding suggested changes or new elements to cover. diff --git a/website/vercel.json b/website/vercel.json index 74651ddf5eb..edf4a3296cf 100644 --- a/website/vercel.json +++ b/website/vercel.json @@ -3,1238 +3,713 @@ "trailingSlash": false, "redirects": [ { - "source": "/docs/core/connect-data-platform/fal-setup", - "destination": "https://github.com/fal-ai/dbt-fal", + "source": "docs/cloud/secure/environment-permissions", + "destination": "docs/cloud/manage-access/environment-permissions", "permanent": true }, { - "source": "/reference/warehouse-setups/fal-setup", - "destination": "https://github.com/fal-ai/dbt-fal", + "source": "docs/cloud/secure/environment-permissions-setup", + "destination": "docs/cloud/manage-access/environment-permissions-setup", "permanent": true }, { - "source": "/docs/core/homebrew-install", - "destination": "/docs/core/installation-overview", - "permanent": true - }, - { - "source": "/docs/faqs/Tests/configurable-data-path", - "destination": "/docs/faqs/Seeds/configurable-data-path", + "source": "/docs/dbt-versions/core-upgrade/upgrading-to-dbt-utils-v1.0.md", + "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-dbt-utils-v1.0.md", "permanent": true }, { - "source": "/docs/build/sl-getting-started", - "destination": "/guides/sl-snowflake-qs", + "source": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.0", + "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-v1.0", "permanent": true }, { - "source": "/docs/use-dbt-semantic-layer/quickstart-sl", - "destination": "/guides/sl-snowflake-qs", + "source": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.1", + "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-v1.1", "permanent": true }, { - "source": "/docs/cloud/manage-access/set-up-sso-azure-active-directory", - "destination": "/docs/cloud/manage-access/set-up-sso-microsoft-entra-id", + "source": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.2", + "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-v1.2", "permanent": true }, { - "source": "/docs/building-a-dbt-project/dont-nest-your-curlies", - "destination": "/best-practices/dont-nest-your-curlies", - "permanent": true - }, - { - "source": "/docs/build/incremental-models#about-incremental_strategy", - "destination": "/docs/build/incremental-strategy", - "permanent": true - }, - { - "source": "/docs/dbt-versions/upgrade-core-in-cloud", - "destination": "/docs/dbt-versions/upgrade-dbt-version-in-cloud", - "permanent": true - }, - { - "source": "/docs/cloud/about-cloud/regions-ip-addresses", - "destination": "/docs/cloud/about-cloud/access-regions-ip-addresses", + "source": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.3", + "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-v1.3", "permanent": true }, { - "source": "/reference/profiles.yml", - "destination": "/docs/core/connect-data-platform/profiles.yml", + "source": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.4", + "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-v1.4", "permanent": true }, { - "source": "/docs/cloud/dbt-cloud-ide/dbt-cloud-tips", - "destination": "/docs/build/dbt-tips", + "source": "/best-practices/how-we-mesh/mesh-4-faqs", + "destination": "/best-practices/how-we-mesh/mesh-5-faqs", "permanent": true }, { - "source": "/docs/dbt-cloud-apis/discovery-schema-job-metric", - "destination": "/docs/dbt-cloud-apis/discovery-schema-environment", + "source": "/docs/collaborate/cloud-build-and-view-your-docs", + "destination": "/docs/collaborate/build-and-view-your-docs", "permanent": true }, { - "source": "/docs/dbt-cloud-apis/discovery-schema-job-metrics", - "destination": "/docs/dbt-cloud-apis/discovery-schema-environment", + "source": "/docs/collaborate/documentation", + "destination": "/docs/build/documentation", "permanent": true }, { - "source": "/docs/build/metrics", - "destination": "/docs/build/build-metrics-intro", + "source": "/docs/use-dbt-semantic-layer/tableau", + "destination": "/docs/cloud-integrations/semantic-layer/tableau", "permanent": true }, { - "source": "/reference/test-configs", - "destination": "/reference/data-test-configs", + "source": "/docs/use-dbt-semantic-layer/gsheets", + "destination": "/docs/cloud-integrations/semantic-layer/gsheets", "permanent": true }, { - "source": "/reference/resource-properties/tests", - "destination": "/reference/resource-properties/data-tests", + "source": "/docs/use-dbt-semantic-layer/avail-sl-integrations", + "destination": "/docs/cloud-integrations/avail-sl-integrations", "permanent": true }, { - "source": "/docs/build/tests", - "destination": "/docs/build/data-tests", + "source": "/reference/resource-properties/unit-tests#unit-testing-versioned-models", + "destination": "/reference/resource-properties/unit-testing-versions", "permanent": true }, { - "source": "/docs/cloud/dbt-cloud-ide", - "destination": "/docs/cloud/dbt-cloud-ide/develop-in-the-cloud", + "source": "/docs/deploy/deploy-environments#partial-parsing", + "destination": "/docs/dbt-cloud-environments#partial-parsing", "permanent": true }, { - "source": "/docs/core/installation", - "destination": "/docs/core/installation-overview", + "source": "/docs/dbt-versions/release-notes/:path((?!dbt-cloud-changelog-2021|dbt-cloud-changelog-2019-2020).*)", + "destination": "/docs/dbt-versions/dbt-cloud-release-notes", "permanent": true }, { - "source": "/docs/cloud/about-cloud-develop", - "destination": "/docs/cloud/about-develop-dbt", + "source": "/docs/verified-adapters", + "destination": "/docs/supported-data-platforms", "permanent": true }, { - "source": "/docs/core/about-dbt-core", + "source": "/docs/core/homebrew-install", "destination": "/docs/core/installation-overview", "permanent": true }, { - "source": "/docs/deploy/airgapped", - "destination": "/docs/cloud/about-cloud/tenancy", - "permanent": true - }, - { - "source": "/docs/about/overview", - "destination": "/docs/introduction", - "permanent": true - }, - { - "source": "/dbt-cli/cli-overview", - "destination": "/docs/core/about-dbt-core", + "source": "/docs/faqs/Tests/configurable-data-path", + "destination": "/docs/faqs/Seeds/configurable-data-path", "permanent": true - }, - { - "source": "/guides/advanced/creating-new-materializations", - "destination": "/guides/create-new-materializations", - "permanent": true - }, - { - "source": "/guides/advanced/using-jinja", - "destination": "/guides/using-jinja", - "permanent": true }, { - "source": "/guides/best-practices", - "destination": "/best-practices", - "permanent": true - }, - { - "source": "/guides/best-practices/debugging-errors", - "destination": "/guides/debug-errors", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-mesh/mesh-1-intro", - "destination": "/best-practices/how-we-mesh/mesh-1-intro", + "source": "/docs/build/sl-getting-started", + "destination": "/guides/sl-snowflake-qs", "permanent": true }, { - "source": "/guides/best-practices/how-we-mesh/mesh-2-structures", - "destination": "/best-practices/how-we-mesh/mesh-2-structures", + "source": "/docs/use-dbt-semantic-layer/quickstart-sl", + "destination": "/guides/sl-snowflake-qs", "permanent": true }, { - "source": "/guides/best-practices/how-we-mesh/mesh-3-implementation", - "destination": "/best-practices/how-we-mesh/mesh-3-implementation", + "source": "/docs/cloud/manage-access/set-up-sso-azure-active-directory", + "destination": "/docs/cloud/manage-access/set-up-sso-microsoft-entra-id", "permanent": true }, { - "source": "/guides/best-practices/how-we-build-our-metrics/semantic-layer-1-intro", - "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-1-intro", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-build-our-metrics/semantic-layer-2-setup", - "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-2-setup", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-build-our-metrics/semantic-layer-3-build-semantic-models", - "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-3-build-semantic-models", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-build-our-metrics/semantic-layer-4-build-metrics", - "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-4-build-metrics", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-build-our-metrics/semantic-layer-5-refactor-a-mart", - "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-5-refactor-a-mart", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-build-our-metrics/semantic-layer-6-advanced-metrics", - "destination": "/guides/best-practices/how-we-build-our-metrics/semantic-layer-6-advanced-metrics", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-build-our-metrics/semantic-layer-7-conclusion", - "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-7-conclusion", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-structure/1-guide-overview", - "destination": "/best-practices/how-we-structure/1-guide-overview", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-structure/2-staging", - "destination": "/best-practices/how-we-structure/2-staging", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-structure/3-intermediate", - "destination": "/best-practices/how-we-structure/3-intermediate", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-structure/4-marts", - "destination": "/best-practices/how-we-structure/4-marts", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-structure/5-semantic-layer-marts", - "destination": "/best-practices/how-we-structure/5-semantic-layer-marts", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-structure/6-the-rest-of-the-project", - "destination": "/best-practices/how-we-structure/6-the-rest-of-the-project", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-style/0-how-we-style-our-dbt-projects", - "destination": "/best-practices/how-we-style/0-how-we-style-our-dbt-projects", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-style/1-how-we-style-our-dbt-models", - "destination": "/best-practices/how-we-style/1-how-we-style-our-dbt-models", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-style/2-how-we-style-our-sql", - "destination": "/best-practices/how-we-style/2-how-we-style-our-sql", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-style/3-how-we-style-our-python", - "destination": "/best-practices/how-we-style/3-how-we-style-our-python", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-style/4-how-we-style-our-jinja", - "destination": "/best-practices/how-we-style/4-how-we-style-our-jinja", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-style/5-how-we-style-our-yaml", - "destination": "/best-practices/how-we-style/5-how-we-style-our-yaml", - "permanent": true - }, - { - "source": "/guides/best-practices/how-we-style/6-how-we-style-conclusion", - "destination": "/best-practices/how-we-style/6-how-we-style-conclusion", - "permanent": true - }, - { - "source": "/guides/best-practices/materializations/1-guide-overview", - "destination": "/best-practices/materializations/1-guide-overview", - "permanent": true - }, - { - "source": "/guides/best-practices/materializations/2-available-materializations", - "destination": "/best-practices/materializations/2-available-materializations", - "permanent": true - }, - { - "source": "/guides/best-practices/materializations/3-configuring-materializations", - "destination": "/best-practices/materializations/3-configuring-materializations", - "permanent": true - }, - { - "source": "/guides/best-practices/materializations/4-incremental-models", - "destination": "/best-practices/materializations/4-incremental-models", - "permanent": true - }, - { - "source": "/guides/best-practices/materializations/5-best-practices", - "destination": "/best-practices/materializations/5-best-practices", - "permanent": true - }, - { - "source": "/guides/best-practices/materializations/6-examining-builds", - "destination": "/best-practices/materializations/6-examining-builds", - "permanent": true - }, - { - "source": "/guides/best-practices/materializations/7-conclusion", - "destination": "/best-practices/materializations/7-conclusion", - "permanent": true - }, - { - "source": "/guides/best-practices/writing-custom-generic-tests", - "destination": "/best-practices/writing-custom-generic-tests", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem", - "destination": "/guides", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/adapter-development/1-what-are-adapters", - "destination": "/guides/adapter-creation", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/adapter-development/2-prerequisites-for-a-new-adapter", - "destination": "/guides/adapter-creation", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/adapter-development/3-building-a-new-adapter", - "destination": "/guides/adapter-creation", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/adapter-development/4-testing-a-new-adapter", - "destination": "/guides/adapter-creation", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/adapter-development/5-documenting-a-new-adapter", - "destination": "/guides/adapter-creation", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/adapter-development/6-promoting-a-new-adapter", - "destination": "/guides/adapter-creation", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/adapter-development/7-verifying-a-new-adapter", - "destination": "/guides/adapter-creation", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/databricks-guides/dbt-unity-catalog-best-practices", - "destination": "/best-practices/dbt-unity-catalog-best-practices", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/databricks-guides/how_to_optimize_dbt_models_on_databricks", - "destination": "/guides/optimize-dbt-models-on-databricks", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/databricks-guides/how-to-set-up-your-databricks-dbt-project", - "destination": "/guides/set-up-your-databricks-dbt-project", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/databricks-guides/productionizing-your-dbt-databricks-project", - "destination": "/guides/productionize-your-dbt-databricks-project", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/1-overview-dbt-python-snowpark", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/10-python-transformations", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/11-machine-learning-prep", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/12-machine-learning-training-prediction", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/13-testing", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/14-documentation", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/15-deployment", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/2-snowflake-configuration", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/3-connect-to-data-source", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/4-configure-dbt", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/5-development-schema-name", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/6-foundational-structure", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/7-folder-structure", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/8-sources-and-staging", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/dbt-python-snowpark/9-sql-transformations", - "destination": "/guides/dbt-python-snowpark", - "permanent": true - }, - { - "source": "/guides/dbt-ecosystem/sl-partner-integration-guide", - "destination": "/guides/sl-partner-integration-guide", - "permanent": true - }, - { - "source": "/guides/legacy/best-practices", - "destination": "/best-practices/best-practice-workflows", - "permanent": true - }, - { - "source": "/guides/legacy/building-packages", - "destination": "/guides/building-packages", - "permanent": true - }, - { - "source": "/guides/legacy/creating-date-partitioned-tables", - "destination": "/docs/build/incremental-models", - "permanent": true - }, - { - "source": "/guides/legacy/debugging-schema-names", - "destination": "/guides/debug-schema-names", - "permanent": true - }, - { - "source": "/guides/legacy/videos", - "destination": "/guides", - "permanent": true - }, - { - "source": "/guides/migration/sl-migration", - "destination": "/guides/sl-migration", - "permanent": true - }, - { - "source": "/guides/migration/tools", - "destination": "/guides", - "permanent": true - }, - { - "source": "/guides/migration/tools/migrating-from-spark-to-databricks", - "destination": "/guides/migrate-from-spark-to-databricks", - "permanent": true - }, - { - "source": "/guides/migration/tools/migrating-from-stored-procedures/1-migrating-from-stored-procedures", - "destination": "/guides/migrate-from-stored-procedures", - "permanent": true - }, - { - "source": "/guides/migration/tools/migrating-from-stored-procedures/2-inserts", - "destination": "/guides/migrate-from-stored-procedures", - "permanent": true - }, - { - "source": "/guides/migration/tools/migrating-from-stored-procedures/3-updates", - "destination": "/guides/migrate-from-stored-procedures", - "permanent": true - }, - { - "source": "/guides/migration/tools/migrating-from-stored-procedures/4-deletes", - "destination": "/guides/migrate-from-stored-procedures", - "permanent": true - }, - { - "source": "/guides/migration/tools/migrating-from-stored-procedures/5-merges", - "destination": "/guides/migrate-from-stored-procedures", - "permanent": true - }, - { - "source": "/guides/migration/tools/migrating-from-stored-procedures/6-migrating-from-stored-procedures-conclusion", - "destination": "/guides/migrate-from-stored-procedures", - "permanent": true - }, - { - "source": "/guides/migration/tools/refactoring-legacy-sql", - "destination": "/guides/refactoring-legacy-sql", - "permanent": true - }, - { - "source": "/guides/orchestration", - "destination": "/guides", - "permanent": true - }, - { - "source": "/guides/orchestration/airflow-and-dbt-cloud/1-airflow-and-dbt-cloud", - "destination": "/guides/airflow-and-dbt-cloud", - "permanent": true - }, - { - "source": "/guides/orchestration/airflow-and-dbt-cloud/2-setting-up-airflow-and-dbt-cloud", - "destination": "/guides/airflow-and-dbt-cloud", - "permanent": true - }, - { - "source": "/guides/orchestration/airflow-and-dbt-cloud/3-running-airflow-and-dbt-cloud", - "destination": "/guides/airflow-and-dbt-cloud", - "permanent": true - }, - { - "source": "/guides/orchestration/airflow-and-dbt-cloud/4-airflow-and-dbt-cloud-faqs", - "destination": "/guides/airflow-and-dbt-cloud", - "permanent": true - }, - { - "source": "/guides/orchestration/custom-cicd-pipelines/1-cicd-background", - "destination": "/guides/custom-cicd-pipelines", - "permanent": true - }, - { - "source": "/guides/orchestration/custom-cicd-pipelines/3-dbt-cloud-job-on-merge", - "destination": "/guides/custom-cicd-pipelines", - "permanent": true - }, - { - "source": "/guides/orchestration/custom-cicd-pipelines/4-dbt-cloud-job-on-pr", - "destination": "/guides/custom-cicd-pipelines", - "permanent": true - }, - { - "source": "/guides/orchestration/custom-cicd-pipelines/5-something-to-consider", - "destination": "/guides/custom-cicd-pipelines", - "permanent": true - }, - { - "source": "/guides/orchestration/how-to-use-databricks-workflows-to-run-dbt-cloud-jobs", - "destination": "/guides/how-to-use-databricks-workflows-to-run-dbt-cloud-jobs", - "permanent": true - }, - { - "source": "/guides/orchestration/set-up-ci/in-15-minutes", - "destination": "/guides/set-up-ci", - "permanent": true - }, - { - "source": "/guides/orchestration/set-up-ci/lint-on-push", - "destination": " /guides/set-up-ci", - "permanent": true - }, - { - "source": "/guides/orchestration/set-up-ci/multiple-environments", - "destination": "/guides/set-up-ci", - "permanent": true - }, - { - "source": "/guides/orchestration/set-up-ci/overview", - "destination": "/guides/set-up-ci", - "permanent": true - }, - { - "source": "/guides/orchestration/set-up-ci/run-dbt-project-evaluator", - "destination": "/guides/set-up-ci", - "permanent": true - }, - { - "source": "/guides/orchestration/webhooks", - "destination": "/guides", - "permanent": true - }, - { - "source": "/guides/orchestration/webhooks/serverless-datadog", - "destination": "/guides/serverless-datadog", - "permanent": true - }, - { - "source": "/guides/orchestration/webhooks/serverless-pagerduty", - "destination": "/guides/serverless-pagerduty", - "permanent": true - }, - { - "source": "/guides/orchestration/webhooks/zapier-ms-teams", - "destination": "/guides/zapier-ms-teams", - "permanent": true - }, - { - "source": "/guides/orchestration/webhooks/zapier-new-cloud-job", - "destination": "/docs/deploy/deploy-jobs#trigger-on-job-completion--", - "permanent": true - }, - { - "source": "/guides/zapier-new-cloud-job", - "destination": "/docs/deploy/deploy-jobs#trigger-on-job-completion--", - "permanent": true - }, - { - "source": "/guides/orchestration/webhooks/zapier-refresh-mode-report", - "destination": "/guides/zapier-refresh-mode-report", - "permanent": true - }, - { - "source": "/guides/orchestration/webhooks/zapier-refresh-tableau-workbook", - "destination": "/guides/zapier-refresh-tableau-workbook", - "permanent": true - }, - { - "source": "/guides/orchestration/webhooks/zapier-slack", - "destination": "/guides/zapier-slack", - "permanent": true - }, - { - "source": "/faqs/Project/docs-for-multiple-projects", - "destination": "/docs/collaborate/explore-projects#about-project-level-lineage", + "source": "/docs/building-a-dbt-project/dont-nest-your-curlies", + "destination": "/best-practices/dont-nest-your-curlies", "permanent": true }, { - "source": "/faqs/Project/docs-for-multiple-projects", - "destination": "/docs/collaborate/explore-projects#about-project-level-lineage", + "source": "/docs/build/incremental-models#about-incremental_strategy", + "destination": "/docs/build/incremental-strategy", "permanent": true }, { - "source": "/faqs/Accounts/slack", - "destination": "/docs/deploy/job-notifications", + "source": "/docs/dbt-versions/upgrade-core-in-cloud", + "destination": "/docs/dbt-versions/upgrade-dbt-version-in-cloud", "permanent": true }, { - "source": "/guides/migration/versions", - "destination": "/docs/dbt-versions/core-upgrade", + "source": "/docs/cloud/about-cloud/regions-ip-addresses", + "destination": "/docs/cloud/about-cloud/access-regions-ip-addresses", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v1.7", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.7", + "source": "/reference/profiles.yml", + "destination": "/docs/core/connect-data-platform/profiles.yml", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v1.6", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.6", + "source": "/docs/cloud/dbt-cloud-ide/dbt-cloud-tips", + "destination": "/docs/build/dbt-tips", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v1.5", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.5", + "source": "/docs/dbt-cloud-apis/discovery-schema-job-metric", + "destination": "/docs/dbt-cloud-apis/discovery-schema-environment", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v1.4", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.4", + "source": "/docs/dbt-cloud-apis/discovery-schema-job-metrics", + "destination": "/docs/dbt-cloud-apis/discovery-schema-environment", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v1.3", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.3", + "source": "/docs/build/metrics", + "destination": "/docs/build/build-metrics-intro", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v1.2", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.2", + "source": "/reference/test-configs", + "destination": "/reference/data-test-configs", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v1.1", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.1", + "source": "/reference/resource-properties/tests", + "destination": "/reference/resource-properties/data-tests", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v1.0", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v1.0", + "source": "/docs/build/tests", + "destination": "/docs/build/data-tests", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v0.21", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v0.21", + "source": "/docs/cloud/dbt-cloud-ide", + "destination": "/docs/cloud/dbt-cloud-ide/develop-in-the-cloud", "permanent": true }, { - "source": "/guides/migration/versions/upgrading-to-v0.20", - "destination": "/docs/dbt-versions/core-upgrade/upgrading-to-v0.20", + "source": "/docs/core/installation", + "destination": "/docs/core/installation-overview", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-11-0", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-11-0", + "source": "/docs/cloud/about-cloud-develop", + "destination": "/docs/cloud/about-develop-dbt", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-12-0", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-12-0", + "source": "/docs/core/about-dbt-core", + "destination": "/docs/core/installation-overview", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-13-0", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-13-0", + "source": "/docs/deploy/airgapped", + "destination": "/docs/cloud/about-cloud/tenancy", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-14-0", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-14-0", + "source": "/docs/about/overview", + "destination": "/docs/introduction", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-14-1", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-14-1", + "source": "/dbt-cli/cli-overview", + "destination": "/docs/core/about-dbt-core", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-15-0", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-15-0", + "source": "/guides/advanced/creating-new-materializations", + "destination": "/guides/create-new-materializations", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-16-0", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-16-0", + "source": "/guides/advanced/using-jinja", + "destination": "/guides/using-jinja", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-17-0", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-17-0", + "source": "/guides/best-practices/debugging-errors", + "destination": "/guides/debug-errors", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-18-0", - "destination":"/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-18-0" , + "source": "/guides/best-practices/:path*", + "destination": "/best-practices/:path*", "permanent": true }, { - "source": "/guides/migration/versions/Older%20versions/upgrading-to-0-19-0", - "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/upgrading-to-0-19-0", + "source": "/guides/dbt-ecosystem", + "destination": "/guides", "permanent": true }, { - "source": "/reference/snowflake-permissions", - "destination": "/reference/database-permissions/snowflake-permissions", + "source": "/guides/dbt-ecosystem/adapter-development/:path*", + "destination": "/guides/adapter-creation", "permanent": true }, { - "source": "/docs/build/metricflow-cli", - "destination": "/docs/build/metricflow-commands", + "source": "/guides/dbt-ecosystem/databricks-guides/dbt-unity-catalog-best-practices", + "destination": "/best-practices/dbt-unity-catalog-best-practices", "permanent": true }, { - "source": "/docs/core/about-the-cli", - "destination": "/docs/core/about-dbt-core", + "source": "/guides/dbt-ecosystem/databricks-guides/how_to_optimize_dbt_models_on_databricks", + "destination": "/guides/optimize-dbt-models-on-databricks", "permanent": true }, { - "source": "/docs/cloud/about-cloud/about-cloud-ide", - "destination": "/docs/cloud/about-cloud-develop", + "source": "/guides/dbt-ecosystem/databricks-guides/how-to-set-up-your-databricks-dbt-project", + "destination": "/guides/set-up-your-databricks-dbt-project", "permanent": true }, { - "source": "/faqs/models/reference-models-in-another-project", - "destination": "/docs/collaborate/govern/project-dependencies", + "source": "/guides/dbt-ecosystem/databricks-guides/productionizing-your-dbt-databricks-project", + "destination": "/guides/productionize-your-dbt-databricks-project", "permanent": true }, { - "source": "/faqs/Models/reference-models-in-another-project", - "destination": "/docs/collaborate/govern/project-dependencies", + "source": "/guides/dbt-ecosystem/dbt-python-snowpark/:path*", + "destination": "/guides/dbt-python-snowpark", "permanent": true }, { - "source": "/docs/deploy/job-triggers", - "destination": "/docs/deploy/deploy-jobs", + "source": "/guides/dbt-ecosystem/sl-partner-integration-guide", + "destination": "/guides/sl-partner-integration-guide", "permanent": true }, { - "source": "/docs/deploy/job-settings", - "destination": "/docs/deploy/deploy-jobs", + "source": "/guides/legacy/best-practices", + "destination": "/best-practices/best-practice-workflows", "permanent": true }, { - "source": "/docs/deploy/dbt-cloud-job", - "destination": "/docs/deploy/deploy-jobs", + "source": "/guides/legacy/building-packages", + "destination": "/guides/building-packages", "permanent": true }, { - "source": "/faqs/environments/beta-release", - "destination": "/docs/dbt-versions/product-lifecycles", + "source": "/guides/legacy/creating-date-partitioned-tables", + "destination": "/docs/build/incremental-models", "permanent": true }, { - "source": "/docs/deploy/slim-ci-jobs", - "destination": "/docs/deploy/ci-jobs", + "source": "/guides/legacy/debugging-schema-names", + "destination": "/guides/debug-schema-names", "permanent": true }, { - "source": "/guides/dbt-ecosystem/sl-partner-integration-guide", - "destination": "/docs/use-dbt-semantic-layer/avail-sl-integrations", + "source": "/guides/legacy/videos", + "destination": "/guides", "permanent": true }, { - "source": "/docs/use-dbt-semantic-layer/dbt-semantic-layer", - "destination": "/docs/use-dbt-semantic-layer/dbt-sl", + "source": "/guides/migration/sl-migration", + "destination": "/guides/sl-migration", "permanent": true }, { - "source": "/docs/use-dbt-semantic-layer/set-up-semantic-layer", - "destination": "/docs/use-dbt-semantic-layer/setup-sl", + "source": "/guides/migration/tools", + "destination": "/guides", "permanent": true }, { - "source": "/docs/use-dbt-semantic-layer/setup-dbt-semantic-layer", - "destination": "/docs/use-dbt-semantic-layer/setup-sl", + "source": "/guides/migration/tools/migrating-from-spark-to-databricks", + "destination": "/guides/migrate-from-spark-to-databricks", "permanent": true }, { - "source": "/docs/use-dbt-semantic-layer/quickstart-semantic-layer", - "destination": "/docs/use-dbt-semantic-layer/quickstart-sl", + "source": "/guides/migration/tools/migrating-from-stored-procedures/:path*", + "destination": "/guides/migrate-from-stored-procedures", "permanent": true }, { - "source": "/docs/collaborate/environments/environments-in-dbt", - "destination": "/docs/environments-in-dbt", + "source": "/guides/migration/tools/refactoring-legacy-sql", + "destination": "/guides/refactoring-legacy-sql", "permanent": true }, { - "source": "/docs/collaborate/environments/dbt-cloud-environments", - "destination": "/docs/deploy/dbt-cloud-environments", + "source": "/guides/orchestration", + "destination": "/guides", "permanent": true }, { - "source": "/docs/collaborate/environments/dbt-core-environments", - "destination": "/docs/core/dbt-core-environments", + "source": "/guides/orchestration/airflow-and-dbt-cloud/:path*", + "destination": "/guides/airflow-and-dbt-cloud", "permanent": true }, { - "source": "/docs/cloud/manage-access/licenses-and-groups", - "destination": "/docs/cloud/manage-access/about-user-access", + "source": "/guides/orchestration/custom-cicd-pipelines/:path*", + "destination": "/guides/custom-cicd-pipelines", "permanent": true }, { - "source": "/docs/deploy/cloud-ci-job", - "destination": "/docs/deploy/continuous-integration", + "source": "/guides/orchestration/how-to-use-databricks-workflows-to-run-dbt-cloud-jobs", + "destination": "/guides/how-to-use-databricks-workflows-to-run-dbt-cloud-jobs", "permanent": true }, { - "source": "/docs/quickstarts/dbt-cloud/bigquery", - "destination": "/quickstarts/bigquery", + "source": "/guides/orchestration/set-up-ci/:path*", + "destination": "/guides/set-up-ci", "permanent": true }, { - "source": "/docs/quickstarts/dbt-cloud/databricks", - "destination": "/quickstarts/databricks", + "source": "/guides/orchestration/webhooks", + "destination": "/guides", "permanent": true }, { - "source": "/docs/quickstarts/dbt-cloud/redshift", - "destination": "/quickstarts/redshift", + "source": "/guides/orchestration/webhooks/serverless-datadog", + "destination": "/guides/serverless-datadog", "permanent": true }, { - "source": "/docs/quickstarts/dbt-cloud/snowflake", - "destination": "/quickstarts/snowflake", + "source": "/guides/orchestration/webhooks/serverless-pagerduty", + "destination": "/guides/serverless-pagerduty", "permanent": true }, { - "source": "/docs/quickstarts/dbt-cloud/starburst-galaxy", - "destination": "/quickstarts/starburst-galaxy", + "source": "/guides/orchestration/webhooks/zapier-ms-teams", + "destination": "/guides/zapier-ms-teams", "permanent": true }, { - "source": "/docs/quickstarts/dbt-core/codespace", - "destination": "/quickstarts/codespace", + "source": "/guides/orchestration/webhooks/zapier-new-cloud-job", + "destination": "/docs/deploy/deploy-jobs#trigger-on-job-completion--", "permanent": true }, { - "source": "/docs/quickstarts/dbt-core/manual-install", - "destination": "/quickstarts/manual-install", + "source": "/guides/zapier-new-cloud-job", + "destination": "/docs/deploy/deploy-jobs#trigger-on-job-completion--", "permanent": true }, { - "source": "/docs/deploy/project-state", - "destination": "/reference/node-selection/syntax", + "source": "/guides/orchestration/webhooks/zapier-refresh-mode-report", + "destination": "/guides/zapier-refresh-mode-report", "permanent": true }, { - "source": "/reference/global-configs", - "destination": "/reference/global-configs/about-global-configs", + "source": "/guides/orchestration/webhooks/zapier-refresh-tableau-workbook", + "destination": "/guides/zapier-refresh-tableau-workbook", "permanent": true }, { - "source": "/reference/global-cli-flags.yml", - "destination": "/reference/global-configs/about-global-configs.yml", + "source": "/guides/orchestration/webhooks/zapier-slack", + "destination": "/guides/zapier-slack", "permanent": true }, { - "source": "/reference/global-configs/command-line-flags", - "destination": "/reference/global-configs/command-line-options", + "source": "/faqs/Project/docs-for-multiple-projects", + "destination": "/docs/collaborate/explore-projects#about-project-level-lineage", "permanent": true }, { - "source": "/reference/global-configs/yaml-configurations", - "destination": "/reference/global-configs/project-flags", + "source": "/faqs/Project/docs-for-multiple-projects", + "destination": "/docs/collaborate/explore-projects#about-project-level-lineage", "permanent": true }, { - "source": "/docs/quickstarts/overview", - "destination": "/quickstarts", + "source": "/faqs/Accounts/slack", + "destination": "/docs/deploy/job-notifications", "permanent": true }, { - "source": "/docs/supported-data-platforms#verified-adapters", - "destination": "/docs/supported-data-platforms", + "source": "/guides/migration/versions", + "destination": "/docs/dbt-versions/core-upgrade", "permanent": true }, { - "source": "/docs/supported-data-platforms#community-adapters", - "destination": "/docs/community-adapters", + "source": "/guides/migration/versions/:path((?!upgrading-to-v0.21|upgrading-to-v0.20).*)", + "destination": "/docs/dbt-versions/core-upgrade/:path*", "permanent": true }, { - "source": "/docs/supported-data-platforms#adapter-installation", - "destination": "/docs/connect-adapters", + "source": "/guides/migration/versions/upgrading-to-v0.21", + "destination": "/docs/dbt-versions/core-upgrade", "permanent": true }, { - "source": "/docs/supported-data-platforms#adapter-taxonomy", - "destination": "/docs/supported-data-platforms", + "source": "/guides/migration/versions/upgrading-to-v0.20", + "destination": "/docs/dbt-versions/core-upgrade", "permanent": true }, { - "source": "/docs/supported-data-platforms#verified-by-dbt-labs", - "destination": "/docs/supported-data-platforms", + "source": "/guides/migration/versions/Older%20versions/:path*", + "destination": "/docs/dbt-versions/core-upgrade/Older%20versions/:path*", "permanent": true }, { - "source": "/docs/supported-data-platforms#maintainers", - "destination": "/docs/connect-adapters#maintainers", + "source": "/reference/snowflake-permissions", + "destination": "/reference/database-permissions/snowflake-permissions", "permanent": true }, { - "source": "/docs/supported-data-platforms#contributing-to-dbt-core-adapters", - "destination": "/docs/contribute-core-adapters", + "source": "/docs/build/metricflow-cli", + "destination": "/docs/build/metricflow-commands", "permanent": true }, { - "source": "/docs/supported-data-platforms#contributing-to-a-pre-existing-adapter", - "destination": "/docs/contribute-core-adapters#contribute-to-a-pre-existing-adapter", + "source": "/docs/core/about-the-cli", + "destination": "/docs/core/about-dbt-core", "permanent": true }, { - "source": "/docs/supported-data-platforms#creating-a-new-adapter", - "destination": "/docs/contribute-core-adapters#create-a-new-adapter", + "source": "/docs/cloud/about-cloud/about-cloud-ide", + "destination": "/docs/cloud/about-cloud-develop", "permanent": true }, { - "source": "/docs/core/connection-profiles", - "destination": "/docs/core/connect-data-platform/connection-profiles", + "source": "/faqs/models/reference-models-in-another-project", + "destination": "/docs/collaborate/govern/project-dependencies", "permanent": true }, { - "source": "/reference/warehouse-setups/bigquery-setup", - "destination": "/docs/core/connect-data-platform/bigquery-setup", + "source": "/faqs/Models/reference-models-in-another-project", + "destination": "/docs/collaborate/govern/project-dependencies", "permanent": true }, { - "source": "/reference/warehouse-setups/postgres-setup", - "destination": "/docs/core/connect-data-platform/postgres-setup", + "source": "/docs/deploy/job-triggers", + "destination": "/docs/deploy/deploy-jobs", "permanent": true }, { - "source": "/reference/warehouse-setups/redshift-setup", - "destination": "/docs/core/connect-data-platform/redshift-setup", + "source": "/docs/deploy/job-settings", + "destination": "/docs/deploy/deploy-jobs", "permanent": true }, { - "source": "/reference/warehouse-setups/snowflake-setup", - "destination": "/docs/core/connect-data-platform/snowflake-setup", + "source": "/docs/deploy/dbt-cloud-job", + "destination": "/docs/deploy/deploy-jobs", "permanent": true }, { - "source": "/reference/warehouse-setups/mssql-setup", - "destination": "/docs/core/connect-data-platform/mssql-setup", + "source": "/faqs/environments/beta-release", + "destination": "/docs/dbt-versions/product-lifecycles", "permanent": true }, { - "source": "/reference/warehouse-setups/trino-setup", - "destination": "/docs/core/connect-data-platform/trino-setup", + "source": "/docs/deploy/slim-ci-jobs", + "destination": "/docs/deploy/ci-jobs", "permanent": true }, { - "source": "/reference/warehouse-setups/singlestore-setup", - "destination": "/docs/core/connect-data-platform/singlestore-setup", + "source": "/guides/dbt-ecosystem/sl-partner-integration-guide", + "destination": "/docs/use-dbt-semantic-layer/avail-sl-integrations", "permanent": true }, { - "source": "/reference/warehouse-setups/spark-setup", - "destination": "/docs/core/connect-data-platform/spark-setup", + "source": "/docs/use-dbt-semantic-layer/dbt-semantic-layer", + "destination": "/docs/use-dbt-semantic-layer/dbt-sl", "permanent": true }, { - "source": "/reference/warehouse-setups/databricks-setup", - "destination": "/docs/core/connect-data-platform/databricks-setup", + "source": "/docs/use-dbt-semantic-layer/set-up-semantic-layer", + "destination": "/docs/use-dbt-semantic-layer/setup-sl", "permanent": true }, { - "source": "/reference/warehouse-setups/hive-setup", - "destination": "/docs/core/connect-data-platform/hive-setup", + "source": "/docs/use-dbt-semantic-layer/setup-dbt-semantic-layer", + "destination": "/docs/use-dbt-semantic-layer/setup-sl", "permanent": true }, { - "source": "/reference/warehouse-setups/exasol-setup", - "destination": "/docs/core/connect-data-platform/exasol-setup", + "source": "/docs/use-dbt-semantic-layer/quickstart-semantic-layer", + "destination": "/docs/use-dbt-semantic-layer/quickstart-sl", "permanent": true }, { - "source": "/reference/warehouse-setups/oracle-setup", - "destination": "/docs/core/connect-data-platform/oracle-setup", + "source": "/docs/collaborate/environments/environments-in-dbt", + "destination": "/docs/environments-in-dbt", "permanent": true }, { - "source": "/reference/warehouse-setups/azuresynapse-setup", - "destination": "/docs/core/connect-data-platform/azuresynapse-setup", + "source": "/docs/collaborate/environments/dbt-cloud-environments", + "destination": "/docs/deploy/dbt-cloud-environments", "permanent": true }, { - "source": "/reference/warehouse-setups/dremio-setup", - "destination": "/docs/core/connect-data-platform/dremio-setup", + "source": "/docs/collaborate/environments/dbt-core-environments", + "destination": "/docs/core/dbt-core-environments", "permanent": true }, { - "source": "/reference/warehouse-setups/clickhouse-setup", - "destination": "/docs/core/connect-data-platform/clickhouse-setup", + "source": "/docs/cloud/manage-access/licenses-and-groups", + "destination": "/docs/cloud/manage-access/about-user-access", "permanent": true }, { - "source": "/reference/warehouse-setups/materialize-setup", - "destination": "/docs/core/connect-data-platform/materialize-setup", + "source": "/docs/deploy/cloud-ci-job", + "destination": "/docs/deploy/continuous-integration", "permanent": true }, { - "source": "/reference/warehouse-setups/rockset-setup", - "destination": "/docs/core/connect-data-platform/rockset-setup", + "source": "/quickstarts", + "destination": "/docs/get-started-dbt", "permanent": true }, { - "source": "/reference/warehouse-setups/firebolt-setup", - "destination": "/docs/core/connect-data-platform/firebolt-setup", + "source": "/docs/quickstarts/dbt-cloud/:path*", + "destination": "/guides/:path*", "permanent": true }, { - "source": "/reference/warehouse-setups/teradata-setup", - "destination": "/docs/core/connect-data-platform/teradata-setup", + "source": "/docs/quickstarts/dbt-core/:path*", + "destination": "/guides/:path*", "permanent": true }, { - "source": "/reference/warehouse-setups/athena-setup", - "destination": "/docs/core/connect-data-platform/athena-setup", + "source": "/quickstarts/:path*", + "destination": "/guides/:path*", "permanent": true }, { - "source": "/reference/warehouse-setups/vertica-setup", - "destination": "/docs/core/connect-data-platform/vertica-setup", + "source": "/docs/deploy/project-state", + "destination": "/reference/node-selection/syntax", "permanent": true }, { - "source": "/reference/warehouse-setups/tidb-setup", - "destination": "/docs/core/connect-data-platform/tidb-setup", + "source": "/reference/global-configs", + "destination": "/reference/global-configs/about-global-configs", "permanent": true }, { - "source": "/reference/warehouse-setups/glue-setup", - "destination": "/docs/core/connect-data-platform/glue-setup", + "source": "/reference/global-cli-flags.yml", + "destination": "/reference/global-configs/about-global-configs.yml", "permanent": true }, { - "source": "/reference/warehouse-setups/mindsdb-setup", - "destination": "/docs/core/connect-data-platform/mindsdb-setup", + "source": "/reference/global-configs/command-line-flags", + "destination": "/reference/global-configs/command-line-options", "permanent": true }, { - "source": "/reference/warehouse-setups/greenplum-setup", - "destination": "/docs/core/connect-data-platform/greenplum-setup", + "source": "/reference/global-configs/yaml-configurations", + "destination": "/reference/global-configs/project-flags", "permanent": true }, { - "source": "/reference/warehouse-setups/impala-setup", - "destination": "/docs/core/connect-data-platform/impala-setup", + "source": "/docs/quickstarts/overview", + "destination": "/quickstarts", "permanent": true }, { - "source": "/reference/warehouse-setups/layer-setup", - "destination": "/docs/core/connect-data-platform/layer-setup", + "source": "/docs/supported-data-platforms#verified-adapters", + "destination": "/docs/supported-data-platforms", "permanent": true }, { - "source": "/reference/warehouse-setups/iomete-setup", - "destination": "/docs/core/connect-data-platform/iomete-setup", + "source": "/docs/supported-data-platforms#community-adapters", + "destination": "/docs/community-adapters", "permanent": true }, { - "source": "/reference/warehouse-setups/duckdb-setup", - "destination": "/docs/core/connect-data-platform/duckdb-setup", + "source": "/docs/supported-data-platforms#adapter-installation", + "destination": "/docs/connect-adapters", "permanent": true }, { - "source": "/reference/warehouse-setups/sqlite-setup", - "destination": "/docs/core/connect-data-platform/sqlite-setup", + "source": "/docs/supported-data-platforms#adapter-taxonomy", + "destination": "/docs/supported-data-platforms", "permanent": true }, { - "source": "/reference/warehouse-setups/mysql-setup", - "destination": "/docs/core/connect-data-platform/mysql-setup", + "source": "/docs/supported-data-platforms#verified-by-dbt-labs", + "destination": "/docs/supported-data-platforms", "permanent": true }, { - "source": "/reference/warehouse-setups/ibmdb2-setup", - "destination": "/docs/core/connect-data-platform/ibmdb2-setup", + "source": "/docs/supported-data-platforms#maintainers", + "destination": "/docs/connect-adapters#maintainers", "permanent": true }, { - "source": "/reference/warehouse-setups/alloydb-setup", - "destination": "/docs/core/connect-data-platform/alloydb-setup", + "source": "/docs/supported-data-platforms#contributing-to-dbt-core-adapters", + "destination": "/docs/contribute-core-adapters", "permanent": true }, { - "source": "/reference/warehouse-setups/doris-setup", - "destination": "/docs/core/connect-data-platform/doris-setup", + "source": "/docs/supported-data-platforms#contributing-to-a-pre-existing-adapter", + "destination": "/docs/contribute-core-adapters#contribute-to-a-pre-existing-adapter", "permanent": true }, { - "source": "/reference/warehouse-setups/infer-setup", - "destination": "/docs/core/connect-data-platform/infer-setup", + "source": "/docs/supported-data-platforms#creating-a-new-adapter", + "destination": "/docs/contribute-core-adapters#create-a-new-adapter", "permanent": true }, { - "source": "/reference/warehouse-setups/databend-setup", - "destination": "/docs/core/connect-data-platform/databend-setup", + "source": "/docs/core/connection-profiles", + "destination": "/docs/core/connect-data-platform/connection-profiles", "permanent": true }, { - "source": "/reference/warehouse-setups/decodable-setup", - "destination": "/docs/core/connect-data-platform/decodable-setup", + "source": "/reference/warehouse-setups/:path*", + "destination": "/docs/core/connect-data-platform/:path*", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-source", - "destination": "/docs/dbt-cloud-apis/discovery-schema-source", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-source", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-sources", - "destination": "/docs/dbt-cloud-apis/discovery-schema-sources", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-sources", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-test", - "destination": "/docs/dbt-cloud-apis/discovery-schema-test", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-test", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-tests", - "destination": "/docs/dbt-cloud-apis/discovery-schema-tests", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-tests", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-seed", - "destination": "/docs/dbt-cloud-apis/discovery-schema-seed", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-seed", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-seeds", - "destination": "/docs/dbt-cloud-apis/discovery-schema-seeds", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-seeds", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-snapshots", - "destination": "/docs/dbt-cloud-apis/discovery-schema-snapshots", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-snapshots", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-model", - "destination": "/docs/dbt-cloud-apis/discovery-schema-model", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-model", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-models", - "destination": "/docs/dbt-cloud-apis/discovery-schema-models", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-models", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-modelByEnv", - "destination": "/docs/dbt-cloud-apis/discovery-schema-modelByEnv", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-models", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-metrics", - "destination": "/docs/dbt-cloud-apis/discovery-schema-metrics", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-metrics", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-metric", - "destination": "/docs/dbt-cloud-apis/discovery-schema-metric", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-metric", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-exposures", - "destination": "/docs/dbt-cloud-apis/discovery-schema-exposures", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-exposures", "permanent": true }, { "source": "/docs/dbt-cloud-apis/metadata-schema-exposure", - "destination": "/docs/dbt-cloud-apis/discovery-schema-exposure", + "destination": "/docs/dbt-cloud-apis/discovery-schema-job-exposure", "permanent": true }, { @@ -1258,27 +733,7 @@ "permanent": true }, { - "source": "/docs/cloud/privatelink/about-privatelink", - "destination": "/docs/cloud/secure/about-privatelink", - "permanent": true - }, - { - "source": "/docs/cloud/privatelink/snowflake-privatelink", - "destination": "/docs/cloud/secure/about-privatelink", - "permanent": true - }, - { - "source": "/docs/cloud/privatelink/redshift-privatelink", - "destination": "/docs/cloud/secure/about-privatelink", - "permanent": true - }, - { - "source": "/docs/cloud/privatelink/databricks-privatelink", - "destination": "/docs/cloud/secure/about-privatelink", - "permanent": true - }, - { - "source": "/docs/cloud/privatelink/ip-restrictions", + "source": "/docs/cloud/privatelink/:path*", "destination": "/docs/cloud/secure/about-privatelink", "permanent": true }, @@ -1317,69 +772,14 @@ "destination": "/docs/deploy/dbt-cloud-job", "permanent": true }, - { - "source": "/docs/deploy/deployments#airflow", - "destination": "/docs/deploy/deployment-tools", - "permanent": true - }, - { - "source": "/docs/deploy/deployments#prefect", - "destination": "/docs/deploy/deployment-tools", - "permanent": true - }, - { - "source": "/docs/deploy/deployments#run-dbt-in-production", - "destination": "/docs/deploy/deployments", - "permanent": true - }, - { - "source": "/docs/deploy/deployments#on-prefect-2", - "destination": "/docs/deploy/deployment-tools", - "permanent": true - }, - { - "source": "/docs/deploy/deployments#on-prefect-1", - "destination": "/docs/deploy/deployment-tools", - "permanent": true - }, - { - "source": "/docs/deploy/deployments#dagster", - "destination": "/docs/deploy/deployment-tools", - "permanent": true - }, - { - "source": "/docs/deploy/deployments#automation-servers", - "destination": "/docs/deploy/deployment-tools", - "permanent": true - }, - { - "source": "/docs/deploy/deployments#cron", - "destination": "/docs/deploy/deployment-tools", - "permanent": true - }, { "source": "/docs/collaborate/manage-access/enterprise-permissions#permission-sets", "destination": "/docs/cloud/manage-access/enterprise-permissions#permission-sets", "permanent": true }, { - "source": "/docs/get-started/privatelink/about-privatelink", - "destination": "/docs/cloud/privatelink/about-privatelink", - "permanent": true - }, - { - "source": "/docs/get-started/privatelink/snowflake-privatelink", - "destination": "/docs/cloud/privatelink/snowflake-privatelink", - "permanent": true - }, - { - "source": "/docs/get-started/privatelink/redshift-privatelink", - "destination": "/docs/cloud/privatelink/redshift-privatelink", - "permanent": true - }, - { - "source": "/docs/get-started/privatelink/databricks-privatelink", - "destination": "/docs/cloud/privatelink/databricks-privatelink", + "source": "/docs/get-started/privatelink/:path*", + "destination": "/docs/cloud/privatelink/:path*", "permanent": true }, { @@ -1467,59 +867,14 @@ "destination": "/docs/cloud/manage-access/about-user-access", "permanent": true }, - { - "source": "/docs/collaborate/manage-access/seats-and-users", - "destination": "/docs/cloud/manage-access/seats-and-users", - "permanent": true - }, - { - "source": "/docs/collaborate/manage-access/self-service-permissions", - "destination": "/docs/cloud/manage-access/self-service-permissions", - "permanent": true - }, - { - "source": "/docs/collaborate/manage-access/enterprise-permissions", - "destination": "/docs/cloud/manage-access/enterprise-permissions", - "permanent": true - }, - { - "source": "/docs/collaborate/manage-access/sso-overview", - "destination": "/docs/cloud/manage-access/sso-overview", - "permanent": true - }, - { - "source": "/docs/collaborate/manage-access/set-up-sso-saml-2.0", - "destination": "/docs/cloud/manage-access/set-up-sso-saml-2.0", - "permanent": true - }, - { - "source": "/docs/collaborate/manage-access/set-up-sso-okta", - "destination": "/docs/cloud/manage-access/set-up-sso-okta", - "permanent": true - }, - { - "source": "/docs/collaborate/manage-access/set-up-sso-google-workspace", - "destination": "/docs/cloud/manage-access/set-up-sso-google-workspace", - "permanent": true - }, { "source": "/docs/collaborate/manage-access/set-up-sso-azure-active-directory", "destination": "/docs/cloud/manage-access/set-up-sso-microsoft-entra-id", "permanent": true }, { - "source": "/docs/collaborate/manage-access/set-up-snowflake-oauth", - "destination": "/docs/cloud/manage-access/set-up-snowflake-oauth", - "permanent": true - }, - { - "source": "/docs/collaborate/manage-access/set-up-bigquery-oauth", - "destination": "/docs/cloud/manage-access/set-up-bigquery-oauth", - "permanent": true - }, - { - "source": "/docs/collaborate/manage-access/audit-log", - "destination": "/docs/cloud/manage-access/audit-log", + "source": "/docs/collaborate/manage-access/:path*", + "destination": "/docs/cloud/manage-access/:path*", "permanent": true }, { @@ -1697,36 +1052,6 @@ "destination": "/docs/get-started/develop-in-the-cloud", "permanent": true }, - { - "source": "/docs/quickstarts/dbt-cloud/bigquery", - "destination": "/quickstarts/bigquery", - "permanent": true - }, - { - "source": "/docs/quickstarts/dbt-cloud/redshift", - "destination": "/quickstarts/redshift", - "permanent": true - }, - { - "source": "/docs/quickstarts/dbt-cloud/snowflake", - "destination": "/quickstarts/snowflake", - "permanent": true - }, - { - "source": "/quickstarts/starburst-galaxy", - "destination": "/quickstarts/starburst-galaxy", - "permanent": true - }, - { - "source": "/quickstarts/codespace", - "destination": "/quickstarts/codespace", - "permanent": true - }, - { - "source": "/quickstarts/manual-install", - "destination": "/quickstarts/manual-install", - "permanent": true - }, { "source": "/docs/dbt-cloud/using-dbt-cloud/cloud-model-timing-tab", "destination": "/docs/get-started/dbt-cloud-features#model-timing-dashboard", @@ -1768,73 +1093,8 @@ "permanent": true }, { - "source": "/advanced/adapter-development/1-what-are-adapters", - "destination": "/guides/dbt-ecosystem/adapter-development/1-what-are-adapters", - "permanent": true - }, - { - "source": "/advanced/adapter-development/2-prerequisites-for-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/2-prerequisites-for-a-new-adapter", - "permanent": true - }, - { - "source": "/advanced/adapter-development/3-building-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/3-building-a-new-adapter", - "permanent": true - }, - { - "source": "/advanced/adapter-development/4-testing-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/4-testing-a-new-adapter", - "permanent": true - }, - { - "source": "/advanced/adapter-development/5-documenting-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/5-documenting-a-new-adapter", - "permanent": true - }, - { - "source": "/advanced/adapter-development/6-promoting-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/6-promoting-a-new-adapter", - "permanent": true - }, - { - "source": "/advanced/adapter-development/7-verifying-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/7-verifying-a-new-adapter", - "permanent": true - }, - { - "source": "/guides/advanced/adapter-development/1-what-are-adapters", - "destination": "/guides/dbt-ecosystem/adapter-development/1-what-are-adapters", - "permanent": true - }, - { - "source": "/guides/advanced/adapter-development/2-prerequisites-for-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/2-prerequisites-for-a-new-adapter", - "permanent": true - }, - { - "source": "/guides/advanced/adapter-development/3-building-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/3-building-a-new-adapter", - "permanent": true - }, - { - "source": "/guides/advanced/adapter-development/4-testing-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/4-testing-a-new-adapter", - "permanent": true - }, - { - "source": "/guides/advanced/adapter-development/5-documenting-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/5-documenting-a-new-adapter", - "permanent": true - }, - { - "source": "/guides/advanced/adapter-development/6-promoting-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/6-promoting-a-new-adapter", - "permanent": true - }, - { - "source": "/guides/advanced/adapter-development/7-verifying-a-new-adapter", - "destination": "/guides/dbt-ecosystem/adapter-development/7-verifying-a-new-adapter", + "source": "/advanced/adapter-development/:path*", + "destination": "/guides/dbt-ecosystem/adapter-development/:path*", "permanent": true }, { @@ -2109,7 +1369,7 @@ }, { "source": "/docs/dbt-cloud/using-dbt-cloud/cloud-generating-documentation", - "destination": "/docs/collaborate/build-and-view-your-docs", + "destination": "/docs/collaborate/explore-projects", "permanent": true }, { @@ -2243,73 +1503,23 @@ "permanent": true }, { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-exposures", - "destination": "/docs/dbt-cloud-apis/metadata-schema-exposures", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-exposure", - "destination": "/docs/dbt-cloud-apis/metadata-schema-exposure", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-tests", - "destination": "/docs/dbt-cloud-apis/metadata-schema-tests", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-test", - "destination": "/docs/dbt-cloud-apis/metadata-schema-test", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-snapshots", - "destination": "/docs/dbt-cloud-apis/metadata-schema-snapshots", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-seeds", - "destination": "/docs/dbt-cloud-apis/metadata-schema-seeds", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-seed", - "destination": "/docs/dbt-cloud-apis/metadata-schema-seed", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-sources", - "destination": "/docs/dbt-cloud-apis/metadata-schema-sources", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-source", - "destination": "/docs/dbt-cloud-apis/metadata-schema-source", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-metrics", - "destination": "/docs/dbt-cloud-apis/metadata-schema-metrics", + "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/:path*", + "destination": "/docs/dbt-cloud-apis/:path*", "permanent": true }, { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-metric", - "destination": "/docs/dbt-cloud-apis/metadata-schema-metric", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-modelByEnv", - "destination": "/docs/dbt-cloud-apis/metadata-schema-modelByEnv", + "source": "/docs/building-a-dbt-project/building-models/configuring-models", + "destination": "/reference/model-configs", "permanent": true }, { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-models", - "destination": "/docs/dbt-cloud-apis/metadata-schema-models", + "source": "/docs/building-a-dbt-project/building-models/using-sql-headers", + "destination": "/reference/resource-configs/sql_header", "permanent": true }, { - "source": "/docs/dbt-cloud/dbt-cloud-api/metadata/schema/metadata-schema-model", - "destination": "/docs/dbt-cloud-apis/metadata-schema-model", + "source": "/docs/building-a-dbt-project/building-models/enable-and-disable-models", + "destination": "/reference/resource-configs/enabled", "permanent": true }, { @@ -2343,43 +1553,43 @@ "permanent": true }, { - "source": "/docs/building-a-dbt-project/hooks-operations", - "destination": "/docs/build/hooks-operations", + "source": "/docs/dbt-cloud/using-dbt-cloud/cloud-environment-variables", + "destination": "/docs/build/environment-variables", "permanent": true }, { - "source": "/docs/building-a-dbt-project/analyses", - "destination": "/docs/build/analyses", + "source": "/docs/building-a-dbt-project/building-models/using-variables", + "destination": "/docs/build/project-variables", "permanent": true }, { - "source": "/docs/building-a-dbt-project/package-management", - "destination": "/docs/build/packages", + "source": "/docs/building-a-dbt-project/building-models/configuring-incremental-models", + "destination": "/docs/build/incremental-models", "permanent": true }, { - "source": "/docs/dbt-cloud/using-dbt-cloud/cloud-environment-variables", - "destination": "/docs/build/environment-variables", + "source": "/docs/building-a-dbt-project/building-models/materializations", + "destination": "/docs/build/materializations", "permanent": true }, - { - "source": "/docs/building-a-dbt-project/building-models/using-variables", - "destination": "/docs/build/project-variables", + { + "source": "/docs/building-a-dbt-project/hooks-operations", + "destination": "/docs/build/hooks-operations", "permanent": true }, { - "source": "/docs/building-a-dbt-project/jinja-macros", - "destination": "/docs/build/jinja-macros", + "source": "/docs/building-a-dbt-project/analyses", + "destination": "/docs/build/analyses", "permanent": true }, { - "source": "/docs/building-a-dbt-project/building-models/configuring-incremental-models", - "destination": "/docs/build/incremental-models", + "source": "/docs/building-a-dbt-project/package-management", + "destination": "/docs/build/packages", "permanent": true }, { - "source": "/docs/building-a-dbt-project/building-models/materializations", - "destination": "/docs/build/materializations", + "source": "/docs/building-a-dbt-project/jinja-macros", + "destination": "/docs/build/jinja-macros", "permanent": true }, { @@ -2527,38 +1737,13 @@ "destination": "https://www.getdbt.com/ui/img/dbt-icon.png", "permanent": true }, - { - "source": "/dbt-cli/installation-guides/centos", - "destination": "/docs/get-started/installation", - "permanent": true - }, - { - "source": "/dbt-cli/installation-guides/centos", - "destination": "/docs/get-started/installation", - "permanent": true - }, { "source": "/dbt-cli/installation-guides/install-from-source", "destination": "/dbt-cli/install/from-source", "permanent": true }, { - "source": "/dbt-cli/installation-guides/macos", - "destination": "/docs/get-started/installation", - "permanent": true - }, - { - "source": "/dbt-cli/installation-guides/ubuntu-debian", - "destination": "/docs/get-started/installation", - "permanent": true - }, - { - "source": "/dbt-cli/installation-guides/windows", - "destination": "/docs/get-started/installation", - "permanent": true - }, - { - "source": "/dbt-cli/installation", + "source": "/dbt-cli/installation-guides/:path*", "destination": "/docs/get-started/installation", "permanent": true }, @@ -2612,46 +1797,6 @@ "destination": "/reference/resource-properties/latest_version", "permanent": true }, - { - "source": "/docs/building-a-dbt-project/building-models/bigquery-configs", - "destination": "/reference/resource-configs/bigquery-configs", - "permanent": true - }, - { - "source": "/docs/building-a-dbt-project/building-models/configuring-models", - "destination": "/reference/model-configs", - "permanent": true - }, - { - "source": "/docs/building-a-dbt-project/building-models/enable-and-disable-models", - "destination": "/reference/resource-configs/enabled", - "permanent": true - }, - { - "source": "/docs/building-a-dbt-project/building-models/redshift-configs", - "destination": "/reference/resource-configs/redshift-configs", - "permanent": true - }, - { - "source": "/docs/building-a-dbt-project/building-models/snowflake-configs", - "destination": "/reference/resource-configs/snowflake-configs", - "permanent": true - }, - { - "source": "/docs/building-a-dbt-project/building-models/spark-configs", - "destination": "/reference/resource-configs/spark-configs", - "permanent": true - }, - { - "source": "/docs/building-a-dbt-project/building-models/tags", - "destination": "/reference/resource-configs/tags", - "permanent": true - }, - { - "source": "/docs/building-a-dbt-project/building-models/using-sql-headers", - "destination": "/reference/resource-configs/sql_header", - "permanent": true - }, { "source": "/docs/building-a-dbt-project/dbt-projects", "destination": "/docs/building-a-dbt-project/projects", @@ -3308,28 +2453,8 @@ "permanent": true }, { - "source": "/docs/running-a-dbt-project/command-line-interface/clean", - "destination": "/reference/commands/clean", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/cmd-docs", - "destination": "/reference/commands/cmd-docs", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/compile", - "destination": "/reference/commands/compile", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/debug", - "destination": "/reference/commands/debug", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/deps", - "destination": "/reference/commands/deps", + "source": "/docs/running-a-dbt-project/command-line-interface/version", + "destination": "/reference/global-cli-flags#version", "permanent": true }, { @@ -3342,59 +2467,14 @@ "destination": "/reference/global-cli-flags", "permanent": true }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/init", - "destination": "/reference/commands/init", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/list", - "destination": "/reference/commands/list", - "permanent": true - }, { "source": "/docs/running-a-dbt-project/command-line-interface/model-selection-syntax", "destination": "/reference/model-selection-syntax", "permanent": true }, { - "source": "/docs/running-a-dbt-project/command-line-interface/rpc", - "destination": "/reference/commands/rpc", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/run", - "destination": "/reference/commands/run", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/run-operation", - "destination": "/reference/commands/run-operation", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/seed", - "destination": "/reference/commands/seed", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/snapshot", - "destination": "/reference/commands/snapshot", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/source", - "destination": "/reference/commands/source", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/test", - "destination": "/reference/commands/test", - "permanent": true - }, - { - "source": "/docs/running-a-dbt-project/command-line-interface/version", - "destination": "/reference/global-cli-flags#version", + "source": "/docs/running-a-dbt-project/command-line-interface/:path*", + "destination": "/reference/commands/:path*", "permanent": true }, { @@ -3623,253 +2703,98 @@ "permanent": true }, { - "source": "/docs/using-operations", - "destination": "/docs/building-a-dbt-project/hooks-operations", - "permanent": true - }, - { - "source": "/docs/using-sources", - "destination": "/docs/building-a-dbt-project/using-sources", - "permanent": true - }, - { - "source": "/docs/using-sql-headers", - "destination": "/reference/resource-configs/sql_header", - "permanent": true - }, - { - "source": "/docs/using-the-command-line-interface", - "destination": "/docs/running-a-dbt-project/using-the-cli", - "permanent": true - }, - { - "source": "/docs/using-the-dbt-ide", - "destination": "/docs/running-a-dbt-project/using-the-dbt-ide", - "permanent": true - }, - { - "source": "/docs/using-variables", - "destination": "/docs/building-a-dbt-project/building-models/using-variables", - "permanent": true - }, - { - "source": "/docs/var", - "destination": "/docs/writing-code-in-dbt/jinja-context/var", - "permanent": true - }, - { - "source": "/docs/version", - "destination": "/reference/global-cli-flags#version", - "permanent": true - }, - { - "source": "/docs/videos", - "destination": "/guides/legacy/videos", - "permanent": true - }, - { - "source": "/docs/warehouse-specific-configurations", - "destination": "/", - "permanent": true - }, - { - "source": "/docs/windows", - "destination": "/dbt-cli/installation", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/api-variable", - "destination": "/", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/class-reference", - "destination": "/reference/dbt-classes", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/extending-dbts-programming-environment/creating-new-materializations", - "destination": "/guides/legacy/creating-new-materializations", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/extending-dbts-programming-environment/custom-schema-tests", - "destination": "/guides/legacy/writing-custom-schema-tests", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/getting-started-with-jinja", - "destination": "/docs/building-a-dbt-project/jinja-macros", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/adapter", - "destination": "/reference/dbt-jinja-functions/adapter", - "permanent": true - }, - { - "source": "/reference/dbt-jinja-functions/as_text", - "destination": "/reference/dbt-jinja-functions", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/builtins", - "destination": "/reference/dbt-jinja-functions/builtins", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/config", - "destination": "/reference/dbt-jinja-functions/config", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/dbt-project-yml-context", - "destination": "/reference/dbt-jinja-functions/dbt-project-yml-context", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/dbt_version", - "destination": "/reference/dbt-jinja-functions/dbt_version", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/debug-method", - "destination": "/reference/dbt-jinja-functions/debug-method", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/doc", - "destination": "/reference/dbt-jinja-functions/doc", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/env_var", - "destination": "/reference/dbt-jinja-functions/env_var", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/exceptions", - "destination": "/reference/dbt-jinja-functions/exceptions", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/execute", - "destination": "/reference/dbt-jinja-functions/execute", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/flags", - "destination": "/reference/dbt-jinja-functions/flags", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/fromjson", - "destination": "/reference/dbt-jinja-functions/fromjson", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/fromyaml", - "destination": "/reference/dbt-jinja-functions/fromyaml", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/graph", - "destination": "/reference/dbt-jinja-functions/graph", - "permanent": true - }, - { - "source": "/docs/writing-code-in-dbt/jinja-context/invocation_id", - "destination": "/reference/dbt-jinja-functions/invocation_id", + "source": "/docs/using-operations", + "destination": "/docs/building-a-dbt-project/hooks-operations", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/log", - "destination": "/reference/dbt-jinja-functions/log", + "source": "/docs/using-sources", + "destination": "/docs/building-a-dbt-project/using-sources", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/modules", - "destination": "/reference/dbt-jinja-functions/modules", + "source": "/docs/using-sql-headers", + "destination": "/reference/resource-configs/sql_header", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/on-run-end-context", - "destination": "/reference/dbt-jinja-functions/on-run-end-context", + "source": "/docs/using-the-command-line-interface", + "destination": "/docs/running-a-dbt-project/using-the-cli", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/profiles-yml-context", - "destination": "/reference/dbt-jinja-functions/profiles-yml-context", + "source": "/docs/using-the-dbt-ide", + "destination": "/docs/running-a-dbt-project/using-the-dbt-ide", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/project_name", - "destination": "/reference/dbt-jinja-functions/project_name", + "source": "/docs/using-variables", + "destination": "/docs/building-a-dbt-project/building-models/using-variables", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/ref", - "destination": "/reference/dbt-jinja-functions/ref", + "source": "/docs/var", + "destination": "/docs/writing-code-in-dbt/jinja-context/var", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/return", - "destination": "/reference/dbt-jinja-functions/return", + "source": "/docs/version", + "destination": "/reference/global-cli-flags#version", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/run_query", - "destination": "/reference/dbt-jinja-functions/run_query", + "source": "/docs/videos", + "destination": "/guides/legacy/videos", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/run_started_at", - "destination": "/reference/dbt-jinja-functions/run_started_at", + "source": "/docs/warehouse-specific-configurations", + "destination": "/", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/schema", - "destination": "/reference/dbt-jinja-functions/schema", + "source": "/docs/windows", + "destination": "/dbt-cli/installation", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/schemas", - "destination": "/reference/dbt-jinja-functions/schemas", + "source": "/docs/writing-code-in-dbt/api-variable", + "destination": "/", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/source", - "destination": "/reference/dbt-jinja-functions/source", + "source": "/docs/writing-code-in-dbt/class-reference", + "destination": "/reference/dbt-classes", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/statement-blocks", - "destination": "/reference/dbt-jinja-functions/statement-blocks", + "source": "/docs/writing-code-in-dbt/extending-dbts-programming-environment/creating-new-materializations", + "destination": "/guides/legacy/creating-new-materializations", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/target", - "destination": "/reference/dbt-jinja-functions/target", + "source": "/docs/writing-code-in-dbt/extending-dbts-programming-environment/custom-schema-tests", + "destination": "/guides/legacy/writing-custom-schema-tests", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/this", - "destination": "/reference/dbt-jinja-functions/this", + "source": "/docs/writing-code-in-dbt/getting-started-with-jinja", + "destination": "/docs/building-a-dbt-project/jinja-macros", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/tojson", - "destination": "/reference/dbt-jinja-functions/tojson", + "source": "/docs/writing-code-in-dbt/jinja-context/adapter", + "destination": "/reference/dbt-jinja-functions/adapter", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/toyaml", - "destination": "/reference/dbt-jinja-functions/toyaml", + "source": "/reference/dbt-jinja-functions/as_text", + "destination": "/reference/dbt-jinja-functions", "permanent": true }, { - "source": "/docs/writing-code-in-dbt/jinja-context/var", - "destination": "/reference/dbt-jinja-functions/var", + "source": "/docs/writing-code-in-dbt/jinja-context/:path*", + "destination": "/reference/dbt-jinja-functions/:path*", "permanent": true }, { @@ -4223,43 +3148,28 @@ "permanent": true }, { - "source": "/docs/guides/migration-guide/upgrading-to-0-14-0", - "destination": "/guides/migration/versions", - "permanent": true - }, - { - "source": "/docs/guides/migration-guide/upgrading-to-0-15-0", - "destination": "/guides/migration/versions", - "permanent": true - }, - { - "source": "/docs/guides/migration-guide/upgrading-to-0-16-0", - "destination": "/guides/migration/versions", - "permanent": true - }, - { - "source": "/docs/guides/migration-guide/upgrading-to-0-17-0", + "source": "/docs/guides/migration-guide/:path*", "destination": "/guides/migration/versions", "permanent": true }, { - "source": "/docs/guides/migration-guide/upgrading-to-0-18-0", - "destination": "/guides/migration/versions", + "source": "/docs/guides/migration-guide/upgrading-to-0-20-0", + "destination": "/guides/migration/versions/upgrading-to-v0.20", "permanent": true }, { - "source": "/docs/guides/migration-guide/upgrading-to-0-19-0", - "destination": "/guides/migration/versions", + "source": "/docs/guides/migration-guide/upgrading-to-0-21-0", + "destination": "/guides/migration/versions/upgrading-to-v0.21", "permanent": true }, { - "source": "/docs/guides/migration-guide/upgrading-from-0-10-to-0-11", - "destination": "/guides/migration/versions", + "source": "/docs/guides/migration-guide/upgrading-to-1-0-0", + "destination": "/guides/migration/versions/upgrading-to-v1.0", "permanent": true }, { - "source": "/docs/guides/migration-guide/upgrading-to-014", - "destination": "/guides/migration/versions", + "source": "/docs/guides/migration-guide/upgrading-to-v1.0", + "destination": "/guides/migration/versions/upgrading-to-v1.0", "permanent": true }, { @@ -4277,36 +3187,11 @@ "destination": "/guides/migration/versions", "permanent": true }, - { - "source": "/docs/guides/migration-guide/upgrading-to-0-20-0", - "destination": "/guides/migration/versions/upgrading-to-v0.20", - "permanent": true - }, - { - "source": "/docs/guides/migration-guide/upgrading-to-0-21-0", - "destination": "/guides/migration/versions/upgrading-to-v0.21", - "permanent": true - }, - { - "source": "/docs/guides/migration-guide/upgrading-to-1-0-0", - "destination": "/guides/migration/versions/upgrading-to-v1.0", - "permanent": true - }, - { - "source": "/docs/guides/migration-guide/upgrading-to-v1.0", - "destination": "/guides/migration/versions/upgrading-to-v1.0", - "permanent": true - }, { "source": "/docs/guides/getting-help", "destination": "/guides/legacy/getting-help", "permanent": true }, - { - "source": "/docs/guides/migration-guide/:slug", - "destination": "/guides/migration/versions/:slug*", - "permanent": true - }, { "source": "/docs/guides/:slug", "destination": "/guides/legacy/:slug*", @@ -4328,33 +3213,18 @@ "permanent": true }, { - "source": "/docs/contributing/what-are-adapters", - "destination": "/guides/advanced/adapter-development/1-what-are-adapters", - "permanent": true - }, - { - "source": "/docs/contributing/adapter-development/1-what-are-adapters", - "destination": "/guides/advanced/adapter-development/1-what-are-adapters", - "permanent": true - }, - { - "source": "/docs/contributing/prerequisites-for-a-new-adapter", - "destination": "/guides/advanced/adapter-development/2-prerequisites-for-a-new-adapter", - "permanent": true - }, - { - "source": "/docs/contributing/adapter-development/2-prerequisites-for-a-new-adapter", - "destination": "/guides/advanced/adapter-development/2-prerequisites-for-a-new-adapter", + "source": "/best-practices/how-we-mesh/mesh-2-structures", + "destination": "/best-practices/how-we-mesh/mesh-3-structures", "permanent": true }, { - "source": "/docs/contributing/building-a-new-adapter", - "destination": "/guides/advanced/adapter-development/3-building-a-new-adapter", + "source": "/guides/advanced/adapter-development/:path*", + "destination": "/guides/adapter-creation", "permanent": true }, { - "source": "/docs/contributing/adapter-development/3-building-a-new-adapter", - "destination": "/guides/advanced/adapter-development/3-building-a-new-adapter", + "source": "/docs/contributing/adapter-development/:path*", + "destination": "/guides/adapter-creation", "permanent": true }, { @@ -4373,27 +3243,27 @@ "permanent": true }, { - "source": "/docs/contributing/adapter-development/4-testing-a-new-adapter", - "destination": "/guides/advanced/adapter-development/4-testing-a-new-adapter", + "source": "/docs/contributing/what-are-adapters", + "destination": "/guides/advanced/adapter-development/1-what-are-adapters", "permanent": true }, { - "source": "/docs/contributing/documenting-a-new-adapter", - "destination": "/guides/advanced/adapter-development/5-documenting-a-new-adapter", + "source": "/docs/contributing/prerequisites-for-a-new-adapter", + "destination": "/guides/advanced/adapter-development/2-prerequisites-for-a-new-adapter", "permanent": true }, { - "source": "/docs/contributing/adapter-development/5-documenting-a-new-adapter", - "destination": "/guides/advanced/adapter-development/5-documenting-a-new-adapter", + "source": "/docs/contributing/building-a-new-adapter", + "destination": "/guides/advanced/adapter-development/3-building-a-new-adapter", "permanent": true }, { - "source": "/docs/contributing/promoting-a-new-adapter", - "destination": "/guides/advanced/adapter-development/6-promoting-a-new-adapter", + "source": "/docs/contributing/documenting-a-new-adapter", + "destination": "/guides/advanced/adapter-development/5-documenting-a-new-adapter", "permanent": true }, { - "source": "/docs/contributing/adapter-development/6-promoting-a-new-adapter", + "source": "/docs/contributing/promoting-a-new-adapter", "destination": "/guides/advanced/adapter-development/6-promoting-a-new-adapter", "permanent": true }, @@ -4402,179 +3272,14 @@ "destination": "/guides/advanced/adapter-development/7-verifying-a-new-adapter", "permanent": true }, - { - "source": "/docs/contributing/adapter-development/7-verifying-a-new-adapter", - "destination": "/guides/advanced/adapter-development/7-verifying-a-new-adapter", - "permanent": true - }, { "source": "/docs/dbt-cloud/using-dbt-cloud/cloud-metrics-layer", "destination": "/docs/use-dbt-semantic-layer/dbt-semantic-layer", "permanent": true }, { - "source": "/reference/warehouse-profiles/impala-profile", - "destination": "/reference/warehouse-setups/impala-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/exasol-profile", - "destination": "/reference/warehouse-setups/exasol-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/layer-profile", - "destination": "/reference/warehouse-setups/layer-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/postgres-profile", - "destination": "/reference/warehouse-setups/postgres-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/greenplum-profile", - "destination": "/reference/warehouse-setups/greenplum-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/alloydb-profile", - "destination": "/reference/warehouse-setups/alloydb-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/azuresynapse-profile", - "destination": "/reference/warehouse-setups/azuresynapse-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/snowflake-profile", - "destination": "/reference/warehouse-setups/snowflake-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/rockset-profile", - "destination": "/reference/warehouse-setups/rockset-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/trino-profile", - "destination": "/reference/warehouse-setups/trino-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/glue-profile", - "destination": "/reference/warehouse-setups/glue-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/duckdb-profile", - "destination": "/reference/warehouse-setups/duckdb-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/vertica-profile", - "destination": "/reference/warehouse-setups/vertica-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/clickhouse-profile", - "destination": "/reference/warehouse-setups/clickhouse-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/athena-profile", - "destination": "/reference/warehouse-setups/athena-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/iomete-profile", - "destination": "/reference/warehouse-setups/iomete-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/mssql-profile", - "destination": "/reference/warehouse-setups/mssql-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/tidb-profile", - "destination": "/reference/warehouse-setups/tidb-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/materialize-profile", - "destination": "/reference/warehouse-setups/materialize-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/redshift-profile", - "destination": "/reference/warehouse-setups/redshift-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/databricks-profile", - "destination": "/reference/warehouse-setups/databricks-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/bigquery-profile", - "destination": "/reference/warehouse-setups/bigquery-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/dremio-profile", - "destination": "/reference/warehouse-setups/dremio-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/oracle-profile", - "destination": "/reference/warehouse-setups/oracle-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/teradata-profile", - "destination": "/reference/warehouse-setups/teradata-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/singlestore-profile", - "destination": "/reference/warehouse-setups/singlestore-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/sqlite-profile", - "destination": "/reference/warehouse-setups/sqlite-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/spark-profile", - "destination": "/reference/warehouse-setups/spark-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/mindsdb-profile", - "destination": "/reference/warehouse-setups/mindsdb-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/ibmdb2-profile", - "destination": "/reference/warehouse-setups/ibmdb2-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/firebolt-profile", - "destination": "/reference/warehouse-setups/firebolt-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/mysql-profile", - "destination": "/reference/warehouse-setups/mysql-setup", - "permanent": true - }, - { - "source": "/reference/warehouse-profiles/hive-profile", - "destination": "/reference/warehouse-setups/hive-setup", + "source": "/reference/warehouse-profiles/:path-profile", + "destination": "/reference/warehouse-setups/:path-setup", "permanent": true }, { @@ -4758,42 +3463,7 @@ "permanent": true }, { - "source": "/docs/dbt-cloud/on-premises/dependencies", - "destination": "/docs/deploy/single-tenant", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/on-premises/faqs", - "destination": "/docs/deploy/single-tenant", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/on-premises/index", - "destination": "/docs/deploy/single-tenant", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/on-premises/installation", - "destination": "/docs/deploy/single-tenant", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/on-premises/prerequisites", - "destination": "/docs/deploy/single-tenant", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/on-premises/setup", - "destination": "/docs/deploy/single-tenant", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/on-premises/system-requirements", - "destination": "/docs/deploy/single-tenant", - "permanent": true - }, - { - "source": "/docs/dbt-cloud/on-premises/upgrading-kots", + "source": "/docs/dbt-cloud/on-premises/:path*", "destination": "/docs/deploy/single-tenant", "permanent": true }, @@ -4803,43 +3473,28 @@ "permanent": true }, { - "source": "/quickstarts", - "destination": "/guides", - "permanent": true - }, - { - "source": "/quickstarts/bigquery", - "destination": "/guides/bigquery", - "permanent": true - }, - { - "source": "/quickstarts/databricks", - "destination": "/guides/databricks", - "permanent": true - }, - { - "source": "/quickstarts/redshift", - "destination": "/guides/redshift", + "source": "/docs/building-a-dbt-project/building-models/:path*", + "destination": "/reference/resource-configs/:path*", "permanent": true }, { - "source": "/quickstarts/snowflake", - "destination": "/guides/snowflake", + "source": "/best-practices/how-we-build-our-metrics/semantic-layer-5-refactor-a-mart", + "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-8-refactor-a-rollup", "permanent": true }, { - "source": "/quickstarts/starburst-galaxy", - "destination": "/guides/starburst-galaxy", + "source": "/best-practices/how-we-build-our-metrics/6-the-rest-of-the-project", + "destination": "/best-practices/how-we-structure/5-the-rest-of-the-project", "permanent": true }, { - "source": "/quickstarts/codespace", - "destination": "/guides/codespace", + "source": "/best-practices/how-we-build-our-metrics/semantic-layer-7-conclusion", + "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-9-conclusion", "permanent": true }, { - "source": "/quickstarts/manual-install", - "destination": "/guides/manual-install", + "source": "/best-practices/how-we-structure/5-semantic-layer-marts", + "destination": "/best-practices/how-we-build-our-metrics/semantic-layer-7-semantic-structure", "permanent": true } ], @@ -4866,4 +3521,4 @@ ] } ] -} +} \ No newline at end of file From 66c961a2d5188b1393fc784a3e4964a4aad707c9 Mon Sep 17 00:00:00 2001 From: kiwamizamurai <24860100+kiwamizamurai@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:03:42 +0900 Subject: [PATCH 4/6] Update website/vercel.json --- website/vercel.json | 1 + 1 file changed, 1 insertion(+) diff --git a/website/vercel.json b/website/vercel.json index 9800cbd9b50..f40e0127ec3 100644 --- a/website/vercel.json +++ b/website/vercel.json @@ -1054,6 +1054,7 @@ "destination": "/docs/get-started/develop-in-the-cloud", "permanent": true }, + { "source": "/docs/dbt-cloud/using-dbt-cloud/cloud-model-timing-tab", "destination": "/docs/get-started/dbt-cloud-features#model-timing-dashboard", From e144eb9d65b4827a6b69c3e091b37dbf9524610b Mon Sep 17 00:00:00 2001 From: kiwamizamurai <24860100+kiwamizamurai@users.noreply.github.com> Date: Thu, 8 Aug 2024 20:03:52 +0900 Subject: [PATCH 5/6] Update website/vercel.json --- website/vercel.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/vercel.json b/website/vercel.json index f40e0127ec3..d8b1d3df4f7 100644 --- a/website/vercel.json +++ b/website/vercel.json @@ -3,8 +3,8 @@ "trailingSlash": false, "redirects": [ { - "source": "docs/cloud/secure/environment-permissions", - "destination": "docs/cloud/manage-access/environment-permissions", + "source": "docs/cloud/secure/environment-permissions", + "destination": "docs/cloud/manage-access/environment-permissions", "permanent": true }, { From 5e26368a792bd7b2b588ea2913d61df13463ada4 Mon Sep 17 00:00:00 2001 From: Mirna Wong <89008547+mirnawong1@users.noreply.github.com> Date: Thu, 8 Aug 2024 12:38:50 +0100 Subject: [PATCH 6/6] Update vercel.json add redirects --- website/vercel.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/website/vercel.json b/website/vercel.json index d8b1d3df4f7..7cf5bb542dd 100644 --- a/website/vercel.json +++ b/website/vercel.json @@ -2,6 +2,16 @@ "cleanUrls": true, "trailingSlash": false, "redirects": [ + { + "source": "/docs/core/connect-data-platform/fal-setup", + "destination": "https://github.com/fal-ai/dbt-fal", + "permanent": true + }, + { + "source": "/reference/warehouse-setups/fal-setup", + "destination": "https://github.com/fal-ai/dbt-fal", + "permanent": true + }, { "source": "docs/cloud/secure/environment-permissions", "destination": "docs/cloud/manage-access/environment-permissions", @@ -3525,4 +3535,4 @@ ] } ] -} \ No newline at end of file +}