Подтвердить что ты не робот

Liquibase - как создать журнал изменений для существующей базы данных

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

Сведения об окружающей среде:

  • ОС: Windows 7 32 x86,
  • Java JDK 1.7,
  • Драйвер mysql jdbc из MySQL
  • Liquibase 2.0.5.

Я запускаю из командной строки следующее:

liquibase --driver=com.mysql.jdbc.Driver --changeLogFile=./structure.xml --url="jdbc:mysql://mysql.mysite.com" --username=<myuser> --password=<mypass> generateChangeLog

Он работает нормально и генерирует выходной файл. Но выходной файл просто содержит:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"/>

И никакие таблицы не создаются в моей базе данных (я ожидал, что две таблицы используются для отслеживания).

Что мне не хватает?


редактирует

Да, я имею в виду таблицы липибазахологов и ликбезачелхолов. Я знаю, что они должны автоматически появляться в базе данных. Мой вопрос - почему их там нет. И да, предоставленный пользователь имеет права, предоставленные для выполнения такой задачи.

И это не пустая база данных. Он имеет около 20 таблиц, 10 просмотров, данных...

4b9b3361

Ответ 1

Просто укажите имя базы данных с флагом --url, например, ZNK:

  --url="jdbc:mysql://mysql.mysite.com/database_name_here"

Ответ 2

Я столкнулся с подобной проблемой при создании xml файла changelog для базы данных postgresql. Я размещаю здесь, если это может помочь кому-то.   Я должен был указать --defaultSchemaName в дополнение к вышеуказанным параметрам. Итак, в mysql у вас будет аналогичный вариант:

Последняя команда будет выглядеть так:

liquibase --driver=org.postgresql.Driver --changeLogFile=db.changelog.xml  --classpath=postgresql-9.4-1201-jdbc41.jar --url="jdbc:postgresql://localhost:5432/wms"  --username=<USER_NAME> --password=<PASSWD> --defaultSchemaName=<SCHEMA_NAME> generateChangeLog   

Ответ 3

Создав исходный файл изменений, вы должны выполнить 'changelogsync', он будет создавать эти таблицы в вашей базе данных и обновлять их, а также записывает текущее состояние вашего журнала изменений как "уже запущено" (поэтому не будет выполняться в следующем обновления)