java – liquibase不生成表DATABASECHANGELOG
我是liquibase的新手,我想在生产中的数据库中使用它.
这是一个小应用程序,但我不想手工创建模式,而是想使用像liquibase这样更专业的东西. 我打算做的是在生产中的当前模式和为新应用程序准备的新模式之间创建更改日志.我已经遵循了许多教程,但仍然缺少一些东西.输出changelog.xml总是导入所有模式,并且与现有模式没有区别.我看到liquibase必须创建表DATABASECHANGELOG但我在计算机上看不到它们. 我做了什么 : >在生产中转储当前数据库并在开发计算机上导入 pom.xml: <dependencies> ... <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>3.5.3</version> </dependency> <dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.17</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> </dependencies> <!-- edited build after 1st comment. Still got the problem --> <build> <plugins> <plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId> <version>${liquibase.version}</version> <configuration> <promptOnNonLocalDatabase>true</promptOnNonLocalDatabase> <changeLogFile>${project.build.directory}/classes/changelog/db.changelog-master.xml</changeLogFile> <propertyFile>src/main/resources/liquibase.properties</propertyFile> </configuration> </plugin> </plugins> </build> <!--- old section build,left for history purpose ---> <build> <pluginManagement> <plugins> <plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId> <version>${liquibase.version}</version> <configuration> <promptOnNonLocalDatabase>true</promptOnNonLocalDatabase> <changeLogFile>${project.build.directory}/classes/changelog/db.changelog-master.xml</changeLogFile> <propertyFile>src/main/resources/liquibase.properties</propertyFile> </configuration> </plugin> </plugins> </pluginManagement> </build> liquibase.properties: url=jdbc:mysql://localhost:3306/my_db username=user password=pass driver=com.mysql.jdbc.Driver outputChangeLogFile=src/main/resources/liquibase/master.xml 注意:注释outputChangeLogFile使liquibase创建表DATABASECHANGELOGLOCK,但只有这一个. maven输出: [INFO] ------------------------------------------------------------------------ [INFO] Building -CORE 0.0.2 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- liquibase-maven-plugin:3.5.3:generateChangeLog (default-cli) @ EDI-CORE --- [INFO] ------------------------------------------------------------------------ [INFO] Parsing Liquibase Properties File [INFO] File: src/main/resources/liquibase.properties [INFO] 'classpath' in properties file is not being used by this task. [INFO] ------------------------------------------------------------------------ [INFO] Executing on Database: jdbc:mysql://localhost:3306/my_db [INFO] Generating Change Log from database root@localhost @ jdbc:mysql://localhost:3306/my_db (Default Schema: edi) INFO 17/01/17 15:01: liquibase: srcmainresourcesliquibasemaster.xml exists,appending WARNING 17/01/17 15:01: liquibase: MySQL does not support a timestamp precision of '19' - resetting to the maximum of '6' WARNING 17/01/17 15:01: liquibase: MySQL does not support a timestamp precision of '19' - resetting to the maximum of '6' WARNING 17/01/17 15:01: liquibase: MySQL does not support a timestamp precision of '19' - resetting to the maximum of '6' [INFO] Output written to Change Log file,src/main/resources/liquibase/master.xml [INFO] ------------------------------------------------------------------------ [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ 解决方法
据我所知(我也是新的),表DATABASECHAGELOG和DATABASECHANGELOGLOCK由更新选项创建:mvn liquibase:update
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |