Как работает тег Liquibase - командная строка

Мне удалось успешно пометить теги с помощью командной строки Liquibase, но я не знаю, где он помечен и хранится. Команда была выполнена успешно, ниже приведены входные данные и ответ на команду тега.

Это может быть очень тривиальный вопрос, но я не смог найти к нему никакой документации. Я пробовал в его рабочем пространстве - C: \ liquibase-3.3.2-bin \ sdk \ workspace, ничего не нашел. Кто-нибудь может помочь?

Спасибо!

Вход:

C: \ liquibase-3.3.2-bin \ liquibase.bat --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = C: \ Microsoft_JDBC_Driver_SQL_Server \ sqljdbc_4.1 \ enu \ sqljdbc4.jar --url = " jdbc: sqlserver: // DBServer: 1433; databaseName = DBName "--username = DBUser --password = DBPassword --changeLogFile = D: \ UDeployment \ Liquibase \ Stage \ src \ main \ resources \ db-changelog.xml tag test_25022015

Вывод:

Успешно помечен тег DBUser @ jdbc: sqlserver: // DBServer: 1433; authenticationScheme = nativeAuthentication; xopenStates = false; sendTimeAsDatetime = true; trustServerCertificate = false; sendStringParametersAsUnicode = true; selectMethod = direct; responseBuffering = 8 loginTimeout = 15; lockTimeout = -1; lastUpdateCount = true; encrypt = false; disableStatementPooling = true; databaseName = DBName; applicationName = Microsoft JDBC Driver for SQL Server; applicationIntent = readwrite; Liquibase 'tag' Успешно


person Amreth Chandrasehar    schedule 25.02.2015    source источник


Ответы (1)


Liquibase создаст две таблицы в вашей базе данных databasechangelog и databasechangeloglock. Все скрипты, выполняемые в базе данных, сохранят историю в databasechangelog. Когда вы запускаете tag процесс, это помечает последний скрипт, выполненный с версией, которую вы отправили в столбце tag.

person Eddú Meléndez    schedule 26.02.2015
comment
Спасибо @ Eddú Meléndez, я смог увидеть тег, созданный в этой таблице. Но когда я повторно запустил тег для той же таблицы. Скажем, 1-й тег предназначен для создания таблицы, а 2-й тег - для вставки некоторого значения. Тег был обновлен с новым значением и не создавал новую запись. EXECTYPE - RERAN вместо EXECUTED. Как я могу получить оба тега? - person Amreth Chandrasehar; 27.02.2015
comment
Если у вас есть 3 сценария для первой итерации и вы запускаете задачу тега Liquibase, то третий сценарий будет помечен тегом. если вы добавите еще 5 сценариев, а затем снова запустите задачу тега Liquibase, последний сценарий (в данном случае 3 + 5 = 8) -сценарий номер 8- будет отмечен новым тегом. - person Eddú Meléndez; 27.02.2015
comment
Будет ли снова создан тег для той же таблицы и журнала dbchange? Ниже приведены шаги, которые я сделал, но тег перезаписывается каждый раз, когда я запускаю команду тега. 1) Создайте таблицу 2) Вставьте 2 значения в таблицу 3) Тег 4) Вставьте 2 значения в ту же таблицу 5) Попытка отката - person Amreth Chandrasehar; 28.02.2015
comment
Журнал изменений БД - Вставить значения ‹changeSet author = A1 id = 1 runOnChange = true› ‹insert tableName = Test› ‹имя столбца = NAME value = Mark /› ‹имя столбца = GENDER value = M /› ‹имя столбца = значение COUNTRY = USA / ›‹/insert›‹ вставить tableName = Test7 ›‹ имя столбца = NAME значение = Todd / ›‹ имя столбца = GENDER значение = M / ›‹ имя столбца = COUNTRY значение = USA / ›‹/insert›‹ / changeSet ›‹/databaseChangeLog› - person Amreth Chandrasehar; 28.02.2015
comment
Вы выполнили 2 сценария, а второй был отмечен тегом te tag «воображайте версию 1.0», затем вы применяете новый сценарий, и, наконец, был выполнен откат до версии 1.0. Ваша база данных должна иметь версию 1.0. - person Eddú Meléndez; 28.02.2015
comment
Да, я этого и ожидал! К сожалению, откат базы данных не произошел для шага 2 - Вставить первые 2 значения. База данных находилась на последней стадии. Должен ли я явно указывать какой-либо сценарий отката в XML-файле журнала dbchange? - person Amreth Chandrasehar; 02.03.2015
comment
Теперь я понимаю. Да, нужно добавить скрипт отката. Вы можете увидеть мой демонстрационный проект на странице github.com/eddumelendez/liquibase-demo - person Eddú Meléndez; 02.03.2015
comment
Спасибо! Я создал таблицу, аналогичную демонстрационной, создал тег -tag_02032015. Когда я запустил запрос ниже, он сказал, что откат Liquibase выполнен успешно, но я все еще вижу существующую таблицу. Не сбрасывается. C: \ liquibase-3.3.2-bin \ liquibase.bat --driver = com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath = C: \ Microsoft_JDBC_Driver_SQL_Server \ sqljdbc_4.1 \ enu \ sqljdbc4.jdbc --url = : sqlserver: // DBServer: 1433; databaseName = DNName --username = DBuser --password = DBPassword --changeLogFile = D: \ Liquibase \ Stage \ src \ main \ resources \ db-changelog.xml откат tag_02032015 - person Amreth Chandrasehar; 02.03.2015
comment
вы добавили сценарий отката в свой db-changelog.xml? - person Eddú Meléndez; 02.03.2015
comment
Ага .. <changeSet id="1" author="Amreth"> <sqlFile path="001_create_role_table.sql" encoding="UTF-8" /> <rollback> <sqlFile path="rollback/001_drop_role_table.sql" encoding="UTF-8" /> </rollback> </changeSet> - person Amreth Chandrasehar; 02.03.2015
comment
Db-changelog, 001_create_role_table и папка отката находятся в одном каталоге / пути. - person Amreth Chandrasehar; 02.03.2015
comment
Я вижу, что вы хотите отменить все изменения в базе данных, верно? Но вы пометили свой первый скрипт, который является последней версией, которую вы хотите иметь. Мой совет: создайте базу данных, запустите задачу тега из Liquibase, выполните задачу обновления, после чего будут созданы таблицы. Затем примените откат, и таблица будет удалена. Учтите, что тег - это ваше последнее состояние, он не будет удален. - person Eddú Meléndez; 02.03.2015
comment
Итак, ниже приведены шаги, которые я сделал 1) База данных уже создана. 2) Создал тег [я считаю, что этот тег предназначен для базы данных] 3) Создал таблицу 4) Создал другой тег [я считаю, что этот тег предназначен для базы данных + тег] 5) Пытался откатиться с тегом, созданным на шаге 2. После шага 5 новую созданную таблицу следовало отбросить. Мое предположение верно? - person Amreth Chandrasehar; 02.03.2015
comment
Убедитесь, что ваша база данных чистая. Я просто так делаю и отлично работает. Убедитесь, что тэги разные - person Eddú Meléndez; 02.03.2015
comment
Конечно, попробую. Спасибо, Эдду! - person Amreth Chandrasehar; 03.03.2015
comment
Привет, Эдду, я создал новую базу данных и попробовал откат [тег и список изменений]. но безуспешно. Liquibase регистрирует откат Liquibase успешно, но без изменений в базе данных. ‹Br/› 1) Создал новую базу данных в MS SQL Server 2008 SP3 ‹br/› 2) Создал тег [новое значение тега] ‹br/› 3) Создал таблицу ‹br/› 4) Пробовал откат - тег, Таблица изменений [значения 1, 2] ‹br/› 5) Журналы Liquibase сообщают, что откат Liquibase выполнен успешно, но в базе данных нет изменений. ‹Br/› Пользуюсь Liquibase v3.3.2 - person Amreth Chandrasehar; 03.03.2015
comment
Не могли бы вы поделиться образцом вашего проекта на гитхабе? Я не использовал sqlserver, вместо этого я использовал mysql. Но в любом случае поделитесь своим проектом, и я посмотрю. - person Eddú Meléndez; 03.03.2015
comment
Конечно, я добавил базу кода в github.com/amrethc/liquibase_mssql, спасибо! - person Amreth Chandrasehar; 03.03.2015
comment
Я ничего не вижу ... убедитесь, что после вашего коммита вы отправили свои коммиты в центральный репозиторий - person Eddú Meléndez; 04.03.2015
comment
Приносим извинения за задержку, возникли проблемы с прокси и не удалось зафиксировать изменения ... Я добавил проект сейчас. Надеюсь, вы сможете его просмотреть. - person Amreth Chandrasehar; 04.03.2015
comment
Во-первых, сценарий отката неправильный, таблица не uDeploy_role (должна быть test_role). После этого я сделал теги шагов, обновление, откат, и все работает нормально. Вы можете проверить более подробную информацию здесь, github.com/amrethc/liquibase_mssql/issues/1 - person Eddú Meléndez; 04.03.2015
comment
Привет, Эдду, это была опечатка .. Я добавил другой файл для выпадающей таблицы. Я использовал правильное имя таблицы для удаления ... не уверен, что это проблема с драйвером MS JDBC для отката? Как я вижу, драйвер MS SQL отлично работает с теми же аргументами командной строки. - person Amreth Chandrasehar; 04.03.2015
comment
Думаю, это может быть проблема с драйвером. Откат отлично работает в mysql и postgres. Я предлагаю использовать другой драйвер, например jtds jtds.sourceforge.net. Думаю, на вопрос был дан ответ, поэтому моя поддержка на этом заканчивается. - person Eddú Meléndez; 04.03.2015
comment
Спасибо !, проверю с этим драйвером :) - person Amreth Chandrasehar; 04.03.2015
comment
Привет, Эдду, попробовал с jtds ... не повезло! Каждый раз, когда я запускаю откат, отображается сообщение Liquibase Rollback Successful, но на самом деле это не так. Не уверен, что делаю не так. Я использовал команду C:\liquibase-3.3.2-bin\liquibase.bat --driver=net.sourceforge.jtds.jdbc.Driver --classpath=C:\jtds-1.3.1-dist\jtds-1.3.1.jar --url="jdbc:jtds:sqlserver://DBServer:1433/DBName" --username=DBUser--password=DBPasswd --changeLogFile=changelog.xml rollback tag_123 - person Amreth Chandrasehar; 06.03.2015
comment
Вы пробовали использовать следующие мои шаги в базе данных mysql? Если это работает, значит, что-то не так с Liquibase, когда они работают с mssql, и вы можете сообщить о проблеме. - person Eddú Meléndez; 06.03.2015
comment
Ага, попробовал ... Я даже создал для этого новую базу данных! Я зарегистрировал проблему с Liquibase - liquibase.jira.com/browse/CORE-2279 А пока продолжим проверку с моей стороны :) - person Amreth Chandrasehar; 07.03.2015