我对Liquibase和Flyway都是新手。想做一些你好的世界。我成功地使用Liquibase和Flyway运行了基本的SQL(创建、插入等)。有兴趣从命令行运行它们。
飞道:
液体碱:
>
每次都需要给出正确的文件名
liquibase--driver=com.mysql.jdbc.driver--classpath=/path/to/classes--changelogfile=com/example/db.changelog1.xml--url=“jdbc:mysql://localhost/example”--username=dev迁移
liquibase--driver=com.mysql.jdbc.driver--classpath=/path/to/classes--changelogfile=com/example/db.changelog2.xml--url=“jdbc:mysql://localhost/example”--username=dev迁移
在liquibase中有没有一种方法可以自动选择新的xml文件?与Flyway一样,我可以只给出文件夹名,而Liquibase可以使用它的表DATABASECHANGELOG查找并执行增量。
第二个问题仅适用于Liquibase
在windows中,为了成功运行命令,我必须将changeLogFile参数...从...更改为...
liquibase --driver=com.mysql.jdbc.Driver --classpath=/path/to/classes --changeLogFile=com/example/db.changelog1.xml --url="jdbc:mysql://localhost/example" --username=dev migrate
至
liquibase --driver=com.mysql.jdbc.Driver --classpath=/path/to/classes --changeLogFile=./db.changelog1.xml --url="jdbc:mysql://localhost/example" --username=dev migrate
即,我将当前的工作目录更改为com/example,然后修改changeLogFile参数,使其指向当前文件夹中的文件并执行命令。
有没有方法可以指向另一个文件夹中的changeLogFile(除当前文件夹外)
为了使liquibase更易于从命令行使用,您可以做的一件事是创建一个名为liquibase.properties
的文件,并将其保存在运行命令的目录中。如果我没记错的话,命令行将查找具有该名称的文件并使用该文件中的属性,而不是需要命令行上的所有选项。有关详细信息,请参阅http://www.liquibase.org/documentation/liquibase.properties.html和http://www.liquibase.org/documentation/command_line.html#using_a_liquibase.properties_file。那里的文件是这样的:
如果不希望总是在命令行上指定选项,则可以创建包含默认值的属性文件。默认情况下,Liquibase将在当前工作目录中查找一个名为“Liquibase.properties”的文件,但您可以使用--defaultsFile标志指定一个备用位置。如果您已经在属性文件中指定了一个选项,并且在命令行上指定了相同的选项,则命令行上的值将覆盖属性文件值。
是的,您可以让liquibase自动从目录加载文件。您必须有一个从命令行或属性文件引用的简单的changelog.xml,但该changelog只能引用包含更多changelog文件的另一个目录。为此使用了
标记(请参阅http://www.liquibase.org/documentation/includeall.html)以了解更多详细信息。
而且,是的,您可以将changelog文件放在您喜欢的任何地方。