我试图从现有数据库(MySQL)中使用liquibase(3.5.5)。
>
C: /液化酶-3.5.5/liquibase。bat—驱动程序=com.mysql。jdbc。驱动程序^--classpath=C:/Libraries/mysql-connector-java-5.1.37-bin。jar^--changeLogFile=db。变更日志。xml^--url=“jdbc:mysql://vbalder/izalerting“^--用户名=*^--密码=*^generateChangeLog”
结果:Liquibase“generateChangeLog”成功
生成的db。变更日志。xml文件包含带有作者BGADEYNE(生成的)和id的变更集,其前缀为1533645947580-
。e、 g.1533645947580-1
我使用了changelogSync命令来创建和填充DATABASECHANGELOG和DATABASECHANGELOGLOCK表。它们确实包含每个变更集的行。
C:/liquibase-3.5.5/liquibase-驱动程序=com.mysql.jdbc.驱动程序^-类路径=C:/库/mysql-connector-java-5.1.37-bin.jar^-更改日志文件=db.changelog.xml^-url="jdbc: mysql://vbalder/izalerting"^-用户名=izalerting^-密码=alfa^ChangelogSync
结果:Liquibase“changelogSync”成功
添加了maven依赖项:
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-cdi</artifactId>
<version>3.5.5</version>
</dependency>
添加了CLI组件:
@Dependent
public class LiquibaseProducer {
@Resource(name="java:/izalerting")
private DataSource dbConnection;
@Produces @LiquibaseType
public CDILiquibaseConfig createConfig() {
CDILiquibaseConfig config = new CDILiquibaseConfig();
config.setChangeLog("be/uzgent/iz/alerting/liquibase/db.changelog.xml");
config.setContexts("non-legacy");
return config;
}
@Produces @LiquibaseType
public DataSource createDataSource() throws SQLException {
return dbConnection;
}
@Produces @LiquibaseType
public ResourceAccessor create() {
return new ClassLoaderResourceAccessor(getClass().getClassLoader());
}
}
将应用程序部署到WildFly时,我可以看到这一点
2018-08-07 15:07:09234错误[stderr](MSC服务线程1-4)信息2018年7月8日下午3:07:liquibase。整合。cdi。CDILiquibase:Booting Liquibase 3.5.4 2018-08-07 15:07:09285 ERROR[stderr](MSC服务线程1-4)INFO 8/7/18 3:07 PM:Liquibase:Successfully acquired change log lock 2018-08-07 15:07:09781 ERROR[stderr](MSC服务线程1-4)INFO 8/7/18 3:07 PM:Liquibase:Reading from PUBLIC。DATABASECHANGELOG 2018-08-07 15:07:09814错误[stderr](MSC服务线程1-4)严重2018年8月7日下午3:07:liquibase:db。变更日志。xml:db。变更日志。xml::1533645947580-1::BGADEYNE(生成):更改集db。变更日志。xml::1533645947580-1::BGADEYNE(生成)失败。错误:表“ALERTRESULT”已存在;SQL语句:2018-08-07 15:07:09815 ERROR[stderr](MSC service thread 1-4)CREATE TABLE PUBLIC。alertresult(triggerid VARCHAR(255)不为NULL,application VARCHAR(40)不为NULL,resultid INT不为NULL,subject VARCHAR(255),content CLOB,contenturl CLOB,executetime TIMESTAMP,html BOOLEAN DEFAULT TRUE不为NULL,alertlevel VARCHAR(20)DEFAULT‘INFO’不为NULL,closable BOOLEAN DEFAULT TRUE不为NULL,screenwidth INT,screenheight INT)[42101-173][失败的SQL:创建表PUBLIC.alertresult(triggerid VARCHAR(255)不为NULL,应用程序VARCHAR(40)不为NULL,resultid INT不为NULL,subject VARCHAR(255),content CLOB,contenturl CLOB,executetime TIMESTAMP,html BOOLEAN DEFAULT TRUE不为NULL,alertlevel VARCHAR(20)默认值“INFO”不为NULL,可关闭布尔值默认值TRUE不为NULL,screenwidth INT,screenheight INT)]2018-08-07 15:07:09816错误[stderr](MSC服务线程1-4)信息8/7/18 3:07 PM:liquibase:db。变更日志。xml::1533645947580-1::BGADEYNE(已生成):已成功释放更改日志锁
DATABASE CHANGELOG表包含每个change eSet的一行。
+------------------+-----------------------+-------------------+-----------+
| # ID | AUTHOR | FILENAME | EXECTYPE |
+------------------+-----------------------+-------------------+-----------+
| 1533645947580-1 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-2 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-3 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-4 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-5 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-6 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-7 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-8 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-9 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-10 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-11 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-12 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-13 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-14 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-15 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-16 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-17 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-18 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-19 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
| 1533645947580-20 | BGADEYNE (generated) | db.changelog.xml | EXECUTED |
+------------------+-----------------------+-------------------+-----------+
有人知道我做错了什么吗?
而不是
@Resource(name="java:/izalerting")
我需要使用
@Resource(lookup="java:/izalerting")
狂野9
我在酗酒方面遇到了麻烦。出于某种原因(我没有更改任何现有的变更集或其他东西),它试图应用已经在base中的变更集。所以我得到了一些错误,比如“关系”表“已经存在”。 我找到了这个标签-
我在一些字段上有@NotNull注释。然而,当我尝试生成diffChangelog时,它会删除所有非空约束 示例类: 差异集: 唯一的解决方案似乎是在每个字段上添加一个额外的注释@列(nullable=false)。我可以做任何事情,这样我就不必在每个字段上添加额外的注释。
我有一个由mysql数据库支持的dropwizard应用程序。我正在使用liquibase包装器进行数据库迁移 首先,我使用“db dump”命令自动生成迁移。xml文件。 现在我正在重构数据库,我希望能够更新特定的列名和表的名称。 我使用先决条件跳过已经生成的表以跳过“”命令 现在如何跳过主键和外键约束的执行?在变更日志级别是否有一个先决条件可以用来表示“跳过已执行的变更集”?或者我只是创建一个
您可能已经注意到,缺少了“生成为标识”,这使我相信不管出于什么原因,AutoIncrement=“true”被忽略了。 我使用Oracle 12.1.0.2和org.LiquiBase:LiquiBase-Core 3.8.2。OJDBC驱动程序版本为19.3.0.0。分级属性为: 我读过互联网,我知道我的Oracle版本与此列类型兼容,并且我不需要创建额外的Oracle序列。有什么线索会出什么问
问题内容: 我有一堂课,里面也有变量。有时我想忽略某些字段,有时在反序列化时不想忽略(也许也在序列化时)。在Jackson怎么办? 问题答案: 对于序列化,“ 过滤属性 ”博客条目应该会有所帮助。反序列化方面的支持较少,因为更常见的是要过滤掉所写的内容。 一种可能的方法是子类化,重写使方法(和/或字段)具有可忽略性的方法,以使用所需的任何逻辑。 如果您举了一个实际应用的例子,这也可能会有所帮助,即
我正在使用计划执行服务 以固定速率运行runnable