我有两张表如下:
CREATE TABLE StudentMaster (
sId SERIAL,
StudentName VARCHAR(50)
);
CREATE TABLE StudentClassMap (
studnetId BIGINT UNSIGNED NOT NULL,
studentClass VARCHAR(10),
FOREIGN KEY (studnetId) REFERENCES StudentMaster (sId)
);
Run Code Online (Sandbox Code Playgroud)
这是我的插入查询.
INSERT INTO StudentMaster (studentName) values ('Jay Parikh');
INSERT INTO StudentClassMap (studnetId, studentClass)
values ((SELECT sId from StudentMaster where studentName='Jay Parikh'),
'M.Sc. 1st Year');
Run Code Online (Sandbox Code Playgroud)
我想为其中的查询定义ChangeSetliquibase.
对于First查询,ChangeSet将是:
<changeSet author="unknown" id="insert-example">
<insert tableName="StudentMaster ">
<column name="studentName" value="Jay Parikh"/>
</insert>
</changeSet>
Run Code Online (Sandbox Code Playgroud)
但我不知道如何为另一个查询定义ChangeSet.
有帮助吗?提前致谢.
我有一组已完成的工作项目,我已准备好将其更改移至我们的生产分支.是否有可能找到附加到它们的变更集并有选择地将它们与目标分支合并?
嗨,我需要以编程方式获取与所选变更集关联的工作项列表.到目前为止,我已经能够使用Artifacts的概念获取与工作项ID相关联的变更集,并使用以下方法获取与特定构建相关联的变更集和/或工作项:
InformationNodeConverters.GetAssociatedChangesets()和InformationNodeConverters.GetAssociatedWorkItems()分别.
我正在使用VSTS 2010 beta 1.任何人都知道解决方案吗?
我一直在分支机构工作并做了一些提交.现在有什么方法可以在TortoiseHg中看到,如果这些提交被推或者它们仍然只是本地的?
我试图查看我项目历史中的每一个变更集...至少是最后1000个变量集.所以我运行了命令:
tf history $/MyProject /recursive /format:brief
Run Code Online (Sandbox Code Playgroud)
...在VS命令行.这会在MyProject项目中弹出一个包含大多数变更集的历史窗口,但即便在这里也会丢失奇怪的变更集.例如,变更集ID列表为:3956 3955 3954 3953 3952 3949 3948 3947 [...]
未显示变更集3950-3951; 为什么?我怎么能强迫他们出现?
这个问题已经被提出,但回答的方式不符合我的需要,同时不排除我正在寻找的解决方案.我不知道正确的行动路线是什么,所以我再次要求,同时链接到其他线程:TFS:还没有被合并名单的变更
我想获得一些尚未从我的主分支合并到开发分支的变更集.通过UI是可能的,但是该列表中有一些真正令人窒息的条目,并且截取屏幕不仅非常费力,而且由于在不可调整大小的窗口中截断了变更集信息,因此也不完整.
先前的线程是通过引用可用的API方法来回答的,但我想知道更多关于powershell的问题,因为这是我想要处理这些信息的环境.有没有办法使用我错过的tf.exe,这将允许我这样做?我对Power Tools Cmdlet的了解相当不错,而且我很确定他们没有任何东西可以做到这一点,但我确实考虑过了.
我只是想取消搁置几天前添加的货架.与此同时,其他人已经成功检查了shelveset中包含的新版本文件.由于我的文件在最新版本和shelveset之间存在冲突(因为它有另一个基本变更集),我想将我的代码库恢复为shelveset使用的这个特定版本.
我现在如何确定搁置集的哪个基本版本已被使用?不幸的是,在"细节"中没有关于此的信息 - 搁置的信息.
我正在使用Gradle 2.7,MySQL 5.5.46和Liquibase-Gradle 1.1.1插件.我有一个文件,其存储过程看起来像......
DELIMITER //
DROP PROCEDURE IF EXISTS MyProc;
CREATE PROCEDURE MyProc(
IN param1 VARCHAR(25),
IN param2 VARCHAR(5),
OUT outParam VARCHAR(2500))
BEGIN
…
END //
Run Code Online (Sandbox Code Playgroud)
我可以在MySQL命令行上很好地导入这个文件.但是,当我创建这个Liquibase变更集时......
<changeSet id="create_my_stored_proc" author="davea">
<sqlFile path="src/main/resources/scripts/my_stored_proc.sql" stripComments="true"/>
</changeSet>
Run Code Online (Sandbox Code Playgroud)
运行它,我得到错误
Caused by: liquibase.exception.DatabaseException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //
DROP PROCEDURE IF EXISTS MyProc’ at line 1
at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:316)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:55)
at …Run Code Online (Sandbox Code Playgroud) 警告 - 新手问题....
我有一个愿景,我可以选择我正在处理的工作项,当我检查代码时,我可以自动将变更集与工作项相关联.
我假设:
然后,如果我查看工作项,我可以看到与该工作项关联的变更集,获得对该特定工作项所做的更改的完全保真度.
这可能吗?它是自动的吗?到目前为止,我发现的所有内容都是变更集与工作项的手动关联.
有没有办法配置 liquibase 变更集的 ID?我的意思是例如id="1528876614155-1"第一部分是自动生成的,第二部分是变更集的数量。有没有办法自己配置第一部分?
我使用 liquibase 来管理我的数据库,并使用创建所有基本表的单个变更集启动该项目。现在我的客户想要更改该数据库,并且我正在开始额外的变更集,但我担心它会在一段时间后变得一团糟(例如,对于开发人员来说不容易阅读),因为第一个变更集现在并不是真正的表示数据库架构。
例子 :
<changeset id="1" author="natty">
<createTable tableName="my_table">
<column name="my_column" type="integer" />
</createTable>
</changeset>
<changeset id="2" author="natty">
<addColumn tableName="my_table">
<column name="another_column" type="varchar(10)" />
</addColumn>
</changeset>
[...]
<changeset id = "100" author="natty">
...
</changeset>
Run Code Online (Sandbox Code Playgroud)
我现在需要全面了解所有变更集才能理解我的数据库架构。
如何避免出现多个变更集?
我从 Linux(Centos) 终端运行以下命令,
mvn --settings /home/centos/.m2/jenkins/liquibase-settings.xml -e resources:resources -Pdev -Dliquibase.promptOnNonLocalDatabase=false -Dliquibase.defaultSchemaName=MYDEV_SCHEMA liquibase:updateSQL liquibase:update -Dsettings.security=/home/centos/.m2/jenkins/liquibase-security-settings.xml -Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
一切都很顺利。
当我通过詹金斯运行时,同样的事情,进入下面,
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:4.2.0:updateSQL (default-cli) on project project-db:
[ERROR] Error setting up or running Liquibase:
[ERROR] Validation Failed:
[ERROR] 16 change sets check sum
[ERROR] db/changelog/ABCD.xml::1234-23::User1 was: 8:67913d9505606eeaaa4998fd594a8ccf but is now: 8:9d985650b579319df50f30732d66909c
[ERROR] db/changelog/ABCD.xml::1234-78::User1 was: 8:3b3babd5d0712f846402af13ede528f7 but is now: 8:0214bf10acfd160fc6f7d709edab2f2e
[ERROR] db/changelog/ABCD.xml::1234-142::User1 was: 8:5e3c8fc77fc87f0e9740c0bff717f579 but is now: 8:53094dd8c32ec71b8d76fdd71009c548
[ERROR] db/changelog/ABCD.xml::1234-200::User1 was: 8:c40ec5c77f7b10961ee550edd756f51f but is now: 8:9bef09eb0681f7ea7bf827b6ac136433
[ERROR] db/changelog/ABCD.xml::1234-923::User1 was: 8:747cbcbda155679dd2fc1bfcc40991c4 but …Run Code Online (Sandbox Code Playgroud)