Liquibase - Generating Change Logs

柔情痞子 提交于 2019-12-11 06:26:47

问题


I want Liquibase, to generate a changelog, from this DB 'testing'. Is it possible?

I have an existing database already, with its tables and data inside.

jdbc:mysql://localhost:3306/testing

Now, I want Liquibase, to generate a changelog, from this DB 'testing'. Is it possible?

This is my command, but it doesn't work.

liquibase --driver=com.mysql.jdbc.Driver --classpath=C:\mysql-connector-java-5.1.47.jar 
--changeLogFile=C:\db.changelog.xml --url="jdbc:mysql://localhost:3306/testing"
--username=root generateChangeLog

I don't use any password.

The error is related to --changeLogFile=C:\db.changelog.xml

I thought, Liquibase will refer to my DB 'testing', and generate changelog, with name 'db.changelog.xml' in folder C.

Which part I'm wrong? Do I miss something?

Or maybe, Liquibase is not intended, to generate changelog, from existing DB?

Or maybe, Liquibase is intended, to generate DB, from changelog only? And not vice versa?


回答1:


This is possible. You might be having trouble since you are writing to a file in the root of your c: drive. Try c:\temp\changelog instead.

My experience is that liquibase works in increments. So if you run that command on your database, it will produce a file as if everything in the database has to be created in the changelog file (as if starting with a completely empty database).

If you read the text on Liquibase's site regarding this command, it says:

When starting to use Liquibase on an existing database, it is often useful, particularly for testing, to have a way to generate the change log to create the current database schema.

This means that if you execute this command once against your dev database, run the result against a new database (let's say test), run it again on your dev database, and run that file against your test database, you will get a load of errors stating that functions already exist.

I gather that the idea behind this is that you create new entries in the changelog files and executing them against ALL your databases, instead of using other tools and using liquibase for the delta.



来源:https://stackoverflow.com/questions/58462643/liquibase-generating-change-logs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!