我正在尝试使用liquibase生成changeLog,从快照数据库的当前状态开始.
环境细节:
我从命令行运行以下命令:
liquibase --driver=com.mysql.jdbc.Driver --changeLogFile=./structure.xml --url="jdbc:mysql://mysql.mysite.com" --username=<myuser> --password=<mypass> generateChangeLog
Run Code Online (Sandbox Code Playgroud)
它运行正常,并生成输出文件.但输出文件只包含:
<?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"/>
Run Code Online (Sandbox Code Playgroud)
并且我的数据库上没有创建表(我期待用于跟踪的两个表).
我错过了什么?
EDITS
是的,我指的是liquibasechanlog和liquibasechangelock表.我知道它们应该自动出现在数据库中.我的问题是为什么他们不在那里.是的,提供的用户拥有执行此类任务的权限.
它不是一个空的数据库.它有近20个表,10个视图,数据......
只需使用--url
像ZNK这样的标志指定数据库名称:
--url="jdbc:mysql://mysql.mysite.com/database_name_here"
Run Code Online (Sandbox Code Playgroud)
在为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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21076 次 |
最近记录: |