当前位置: 首页 > 知识库问答 >
问题:

如何为现有的数据库生成一个变更日志

陈德泽
2023-03-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和liquibaechanglock表。我知道它们应该自动出现在数据库中。我的问题是他们为什么不在那里。是的,所提供的用户有权执行此任务。

而且它不是一个空数据库。它有近20张表,10个视图,数据。。。

共有2个答案

宰烈
2023-03-14

在为postgresql数据库生成changelogxml时,我也遇到过类似的问题。我在这里发帖,如果它能帮助到某人。除了上述参数之外,我还必须指定--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   
吕德业
2023-03-14

只需使用<code>--url</code>标志指定数据库名称,如ZNK所说:

  --url="jdbc:mysql://mysql.mysite.com/database_name_here"
 类似资料:
  • 完成了教程-历史 的学习之后, 我们来到 my-hello [仓库]里面,就是我们在 教程-克隆中 [克隆] 得到的。 在 Mercurial 开发实践中一个好的做法是把每个变更隔离在各自的仓库里。这样可以避免把不相关的代码混杂起来, 并且便于一个接一个的测试每一部分工作。我们现在就开始采用这一模式。 我们的目标很简单,让“hello, world”程序打印另外一行输出。 首先, 我们给这个小项目

  • 使用liquibase可以从现有数据库生成changelog吗? 我希望每个表生成一个xml changelog(不是每个create table语句都在一个changelog中)。

  • 在生产中,数据库用液基changelog.yaml更新,数据库更新成功。 我们对数据库模式进行了一些更改(作为几个增强功能的一部分),例如创建新表、更改表列和创建约束等。 有没有办法使用最新的数据库架构更改自动更新 changelog.yaml?(需要附加到现有的 YAML 文件中,而不是从 SCRACH 重新创建。 因此对生产过渡数据的影响很小)

  • 问题内容: 我有一个与MySQL数据库的Java程序连接,如何在同一连接上将当前数据库更改为另一个数据库? 我这样连接到MySQL: 经过一些操作后,我想在同一连接上连接到另一个mysql数据库。我怎样才能做到这一点? 我尝试使用: 但这不会更改要使用的数据库。 问题答案: 如MySQL文档中所述,您需要用于切换到另一个数据库。这也明确地说,你应该 不 执行切换。 发出此警告的原因是JDBC是数据

  • 本文向大家介绍Python 实现数据库更新脚本的生成方法,包括了Python 实现数据库更新脚本的生成方法的使用技巧和注意事项,需要的朋友参考一下 我在工作的时候,在测试环境下使用的数据库跟生产环境的数据库不一致,当我们的测试环境下的数据库完成测试准备更新到生产环境上的数据库时候,需要准备更新脚本,真是一不小心没记下来就会忘了改了哪里,哪里添加了什么,这个真是非常让人头疼。因此我就试着用Pytho

  • 问题内容: 我有一个带有id(guid)列的sql表。如何强制数据库为每条新记录自动生成新的Guid? 问题答案: 添加。