14

我正在尝试使用 liquibase 来生成 changeLog,首先是对我的数据库的当前状态进行快照。

环境细节:

  • 操作系统:Windows 7 32 x86,
  • Java JDK 1.7,
  • 来自 MySQL 的 mysql jdbc 驱动程序
  • 液基 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"/>

并且在我的数据库上没有创建任何表(我期待用于跟踪的两个表)。

我错过了什么?


编辑

是的,我指的是 liquibasechanlog 和 liquibasechangelock 表。我知道它们应该自动出现在数据库中。我的问题是为什么他们不在那里。是的,提供的用户有权执行此类任务。

而且它不是一个空的数据库。它有近 20 个表、10 个视图、数据......

4

2 回答 2

12

只需使用ZNK--url所说的标志指定数据库名称:

  --url="jdbc:mysql://mysql.mysite.com/database_name_here"
于 2013-12-20T14:50:37.727 回答
9

在为 postgresql 数据库生成 changelog xml 时,我遇到了类似的问题。如果它可以帮助某人,我会在这里发布。--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   
于 2016-11-23T16:37:06.820 回答