[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-liquibase-chto-takoe-contexts-i-labels-kogda-ikh-ispolzovat":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},955,"chto-takoe-contexts-i-labels-kogda-ikh-ispolzovat",29,"liquibase","Liquibase","💧","Что такое contexts и labels? Когда их использовать?","Contexts и labels — два механизма фильтрации changeset-ов, позволяющие выполнять разные наборы миграций в зависимости от окружения или задачи.\n\n### Contexts\n\nContexts привязывают changeset к определённому окружению (dev, test, staging, prod) и выполняют его только при совпадении контекста.\n\n```xml\n\u003CchangeSet id=\"7\" author=\"ivanov\" context=\"dev\">\n    \u003Cinsert tableName=\"users\">\n        \u003Ccolumn name=\"username\" value=\"test_user\"\u002F>\n        \u003Ccolumn name=\"email\" value=\"test@example.com\"\u002F>\n    \u003C\u002Finsert>\n\u003C\u002FchangeSet>\n```\n\nПри запуске указывается контекст:\n\n```bash\nliquibase --contexts=dev update\n```\n\nИли в Spring Boot:\n\n```properties\nspring.liquibase.contexts=dev\n```\n\nChangeset без указания context выполняется **всегда**, вне зависимости от переданного контекста.\n\n### Labels\n\nLabels — более гибкий механизм фильтрации. Labels поддерживают логические выражения (AND, OR, NOT, скобки).\n\n```xml\n\u003CchangeSet id=\"8\" author=\"ivanov\" labels=\"JIRA-456, release-2.0\">\n    \u003CaddColumn tableName=\"accounts\">\n        \u003Ccolumn name=\"currency\" type=\"VARCHAR(3)\" defaultValue=\"RUB\"\u002F>\n    \u003C\u002FaddColumn>\n\u003C\u002FchangeSet>\n```\n\nПри запуске:\n\n```bash\nliquibase --label-filter=\"JIRA-456\" update\n```\n\n### Разница между contexts и labels\n\n| Критерий | Contexts | Labels |\n|---|---|---|\n| Назначение | Разделение по окружениям | Разделение по задачам, релизам, фичам |\n| Логика на changeset | Через запятую (OR) | Через запятую (OR) |\n| Логика при запуске | Через запятую (OR) | Поддерживает AND, OR, NOT, скобки |\n| Типичный пример | `context=\"dev,test\"` | `labels=\"JIRA-123, release-1.5\"` |\n\n> **На собеседовании:** главное — чётко разделить назначение: contexts для окружений, labels для задач и релизов. Частая ошибка — путать их или не знать, что changeset без context выполняется всегда.","","middle",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":19,"featuredSnippetReady":22},"Что такое contexts и labels? Когда их использовать? — Gymterview","Contexts и labels — два механизма фильтрации changeset-ов, позволяющие выполнять разные наборы миграций в зависимости от окружения или задачи.","Contexts и labels — два механизма фильтрации changeset-ов, позволяющие выполнять разные наборы миграций в зависимости от",[7,13],true]