
今天我们将研究如何将Liquibase与MongoDB一起使用,以便我们可以创建一个Liquibase项目。所以Liquibase是一个开源的库,用于跟踪、管理和应用数据库模式。它是一个独立的库。
在Linux上安装Liquibase
为了安装Liquibase,请到Liquibase的官方网页上下载该tar包。下载完tar包后,将包的内容解压到本地目录。
之后,我们必须把Liquibase的安装目录添加到我们系统的路径中。同样,使用下面的命令。
export PATH=$PATH:<Liquibase extracted directory>
现在我们必须下载MongoDB JDBC jar文件。
之后,我们必须下载用于MongoDB的Liquibase扩展,这可以在这里找到。现在将这些jar文件添加到提取的Liquibase安装目录中,即liquibase/lib。
使用MongoDB创建Liquibase项目
现在去一个目录,用任何名字建立一个文件夹,但我更喜欢LiquibaseProject。
之后,进入你所建立的目录,并创建一个扩展名为XML的文件。打开XML文件,把下面的代码粘贴到里面。
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.9.0.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-4.9.0.xsd">
</databaseChangeLog>
现在,在同一目录下,我们必须在另一个文件中定义一些属性。因此,我们必须创建一个以**.properties**为扩展名的属性文件。并将下面的代码粘贴到该文件中。
changelog-file: dbchangelog.xml
url: mongodb://hostname:27017/myDatabase
username: username
password: password
现在我们要在更新日志中添加一个变化集。那么什么是变化集?变更集是由author id 属性唯一标识的。因此,我们将在变化集中添加一个新的集合,如下图。
<changeSet id="1" author="bob">
<ext:createCollection collectionName="myCollection">
<ext:options>
{
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "address"],
properties: {
name: {
bsonType: "string",
description: "The Name"
},
address: {
bsonType: "string",
description: "The Address"
}
}
}
},
validationAction: "warn",
validationLevel: "strict"
}
</ext:options>
</ext:createCollection>
</changeSet>
上面的代码将被输入到XML文件中,以便用一些参数引入一个新的集合。
现在我们必须通过我们的终端导航到项目目录,并更新数据库。为此,我们必须运行一个命令,该命令在下面给出。
liquibase update

现在,当你进入MongoDB Compass社区工具的用户界面时,你可以看到一个数据库已经被创建,名字是myDatabase,在这个数据库下,一个新的集合已经被引入到myCollection。
我们已经看到,我们可以将Liquibase与我们的任何数据库一起使用,以管理我们的数据库模式脚本的修订工作。它还支持各种文件格式。Liquibase使用的脚本被称为变化集,因为我们已经使用了上面的一个。