Я выполняю diff для удаленной базы данных mysql, используя LiquiBase, и обнаруживаю, что сгенерированный набор изменений использует неправильный регистр для имен таблиц (все строчные). Это впоследствии приводит к сбою обновления.
- Liquibase v1.9.5
- База данных: MySQL
- Локальная ОС: Windows 7
- Удаленная ОС: Ubuntu
Я что-то не так делаю, или это ошибка?
Вот моя задача:
<target name="diff-database" depends="prepare">
<echo message="Diff ${database.url} to base ${production.database.url}" />
<diffDatabaseToChangeLog driver="${database.driver}"
url="${production.database.url}"
username="${production.database.username}"
password="${production.database.password}"
baseUrl="${database.url}"
baseUsername="${database.username}"
basePassword="${database.password}"
outputFile="${changeLogFile}" classpathref="liquibase-path">
</diffDatabaseToChangeLog>
</target>
Это генерирует (среди других записей):
<changeSet author="Marty (generated)" id="1264010991558-2">
<addColumn tableName="project">
<column name="earliestUpdatedRevision" type="BIGINT"/>
</addColumn>
</changeSet>
Запуск обновления с использованием этого набора изменений приводит к следующему:
liquibase.exception.MigrationFailedException: Migration failed for change set changelogs/mysql/complete/root.changelog.xml::1264010991558-2::Marty (generated):
Reason: liquibase.exception.JDBCException: Error executing SQL ALTER TABLE `project` ADD `earliestUpdatedRevision` BIGINT:
Caused By: Error executing SQL ALTER TABLE `project` ADD `earliestUpdatedRevision` BIGINT:
Caused By: Table 'xxx.project' doesn't exist
Фактическое имя таблицы - «Проект». Если я изменю changeEntry для использования правильного кожуха, он будет работать.
Любые предложения о том, как заставить это работать правильно?
Привет
Marty