我想更新非常旧的变更集,因为它有一个错误。我已经更新了changesetid并且在运行之后我得到了校验和错误,即校验和被修改了。现在我已经使用这个新的checkSum添加了validCheckSum标签。成功后,我看不到新的变化。有没有办法更新已经执行的更改集。
答案 0 :(得分:1)
每个changeSet
代码都由“id”代码和“author”代码组合唯一标识,因此请检查id
和author name
是否已存在DATABASECHANGELOG
和id
1}}表。如果组合存在,则更改xml文件中的runOnChange
,然后运行构建
如果仍然不起作用,请在<ChangeSet>
中添加 public async Task<IActionResult> OnGetAsync()
{
UserList = _userManager.Users.ToList();
UserRoleList = new List<string>();
RoleList = new List<string>();
return Page();
}
public async Task<IActionResult> OnPostGetRolesAsync()
{
UserList = _userManager.Users.ToList(); // You have to reload
var user = await _userManager.FindByNameAsync(Input.User);
UserRoleList = await _userManager.GetRolesAsync(user);
return Page();
}
属性并尝试
runOnChange - 执行任何更改时发现它已存在的变更集
答案 1 :(得分:0)
在带有sqlFile标签的变更集中使用 runOnChange 的示例。 我有一个使用IDENTITY列类型的Oracle 18脚本,然后不得不为不支持IDENTITY列类型的Oracle 10更改了脚本
<changeSet id="2" author="auto" runOnChange="true">
<sqlFile dbms="oracle" encoding="utf8" endDelimiter=";" path="oracle/230.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true" />
</changeSet>
答案 2 :(得分:0)
如果您声明的是一个非常旧的变更集,则应考虑不更改旧的变更集,而应添加一个新的变更集来修复该错误,因为它可以更好地控制您拥有的版本。这是使用liquibase的主要原因之一。