Ответ 1
Просто укажите имя базы данных с флагом --url
, например, ZNK:
--url="jdbc:mysql://mysql.mysite.com/database_name_here"
Я пытаюсь использовать Liquibase для создания changeLog, начиная с моментального снимка текущего состояния моей базы данных.
Сведения об окружающей среде:
Я запускаю из командной строки следующее:
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 просмотров, данных...
Просто укажите имя базы данных с флагом --url
, например, ZNK:
--url="jdbc:mysql://mysql.mysite.com/database_name_here"
Я столкнулся с подобной проблемой при создании 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
Создав исходный файл изменений, вы должны выполнить 'changelogsync', он будет создавать эти таблицы в вашей базе данных и обновлять их, а также записывает текущее состояние вашего журнала изменений как "уже запущено" (поэтому не будет выполняться в следующем обновления)