[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-liquibase-chto-takoe-changelog-changeset-author-i-id":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},950,"chto-takoe-changelog-changeset-author-i-id",29,"liquibase","Liquibase","💧","Что такое changelog, changeset, author и id?","Changelog, changeset, author и id — четыре базовых понятия Liquibase, образующие иерархию миграций.\n\n**Changelog** — корневой файл (или набор файлов), в котором описаны все изменения БД. Это «журнал» миграций. Changelog может включать другие changelog-файлы через `include` или `includeAll`.\n\n**Changeset** — минимальная единица изменения БД. Каждый changeset содержит одно или несколько изменений, которые применяются как единое целое (в рамках одной транзакции, если СУБД поддерживает DDL-транзакции).\n\n**Author** — строка, идентифицирующая автора changeset. Обычно указывается имя разработчика или его логин.\n\n**Id** — уникальный идентификатор changeset в рамках данного changelog-файла. Вместе с `author` и именем файла образует уникальный ключ changeset.\n\nУникальность changeset определяется тройкой: **id + author + путь к файлу changelog**.\n\n\u003Cdetails>\u003Csummary>Пример в XML\u003C\u002Fsummary>\n\n```xml\n\u003CchangeSet id=\"1\" author=\"ivanov\">\n    \u003CcreateTable tableName=\"users\">\n        \u003Ccolumn name=\"id\" type=\"BIGINT\" autoIncrement=\"true\">\n            \u003Cconstraints primaryKey=\"true\" nullable=\"false\"\u002F>\n        \u003C\u002Fcolumn>\n        \u003Ccolumn name=\"username\" type=\"VARCHAR(255)\">\n            \u003Cconstraints nullable=\"false\" unique=\"true\"\u002F>\n        \u003C\u002Fcolumn>\n    \u003C\u002FcreateTable>\n\u003C\u002FchangeSet>\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Пример в YAML\u003C\u002Fsummary>\n\n```yaml\ndatabaseChangeLog:\n  - changeSet:\n      id: 1\n      author: ivanov\n      changes:\n        - createTable:\n            tableName: users\n            columns:\n              - column:\n                  name: id\n                  type: BIGINT\n                  autoIncrement: true\n                  constraints:\n                    primaryKey: true\n                    nullable: false\n              - column:\n                  name: username\n                  type: VARCHAR(255)\n                  constraints:\n                    nullable: false\n                    unique: true\n```\n\n\u003C\u002Fdetails>\n\n> **На собеседовании:** ключевой момент — назвать тройку уникальности (id + author + filename). Частая ошибка — думать, что id уникален глобально, тогда как он уникален только в контексте автора и файла.","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":19,"keywords":20,"schemaAnswer":19,"featuredSnippetReady":21},"Что такое changelog, changeset, author и id? — Gymterview","Changelog, changeset, author и id — четыре базовых понятия Liquibase, образующие иерархию миграций.",[7,13],true]