如何通过Bash脚本设置最新版本的Liquibase?

5

我曾经安装过较旧版本的Liquibase,例如

   `wget https://github.com/downloads/liquibase/liquibase/liquibase-2.0.5-bin.tar.gz`

请进行提取并将其移动到所需的位置。我无法在GitHub上找到最新版本的Liquibase。可能已被删除或不可用?

Liquibase下载页面仅有指向SourceForge的链接,请问有人可以帮助我如何从SourceForge使用wget下载软件包吗?

编辑 我不确定GitHub,似乎没有最新版本可用的构建。然而,我的完整脚本看起来像这样:

#!/bin/bash
sudo apt-get update
sudo apt-get install -y openjdk-7-jre-headless
sudo apt-get install -y libmysql-java
LV="3.1.1"
function setupLiquibase(){
  source $HOME/.profile

  INSTALLED="$(command -v liquibase)"

  # if not added already
  if [ -z "$LIQUIBASE_HOME" ]
    then
      echo  'export MYSQL_JCONNECTOR=/usr/share/java/mysql-connector-java.jar'|sudo tee -a $HOME/.profile
      echo  'export LIQUIBASE_HOME=/usr/local/liquibase' |sudo tee -a $HOME/.profile
      echo  'export PATH=$PATH:$LIQUIBASE_HOME'|sudo tee -a $HOME/.profile
  fi

  if [ -z "$INSTALLED" ]
    then
        echo "Installing liquibase $LV "
        sudo rm -rf liquibase*
        wget http://kaz.dl.sourceforge.net/project/liquibase/Liquibase%20Core/liquibase-"$LV"-bin.tar.gz
        gunzip liquibase-"$LV"-bin.tar.gz
        sudo mkdir /usr/local/liquibase
        sudo tar -xf liquibase-"$LV"-bin.tar -C /usr/local/liquibase
        sudo chmod +x /usr/local/liquibase/liquibase
    else
        INSTALLED="$(liquibase --version)"
        echo "Liquibase is already installed, ${INSTALLED}"
  fi
}

setupLiquibase

1
请查看这篇较旧的帖子,它应该能回答你的问题:http://unix.stackexchange.com/questions/86971/how-do-i-download-from-sourceforge-with-wget - pooopies
5个回答

3

请尝试使用以下命令行下载:

wget http://sourceforge.net/projects/liquibase/files/Liquibase%20Core/liquibase-3.2.0-bin.tar.gz/download -O liquibase-3.2.0-bin.tar.gz

要选择下载的文件名,您可以指定选项 -O nomefile(请注意,这是大写字母“O”,而不是数字0)。

如果您忘记(就像我第一次那样)指定 -O nomefile,则会在硬盘上得到一个名称由wget猜测的文件。因此:

http://Site/FullPath/liquibase-3.2.0-bin.tar.gz/download  --> download

在这之后,您需要手动重命名文件download

如果不是这样的话

http://Site/FullPath/liquibase-3.2.0-bin.tar.gz  --> liquibase-3.2.0-bin.tar.gz

您将直接获得正确命名的文件。

3

Github将下载部分移动到/release

因此,您的URL变为:

https://github.com/liquibase/liquibase/archive/liquibase-parent-3.2.0.tar.gz

很遗憾,这只是源代码包。我找不到最新版本的jar构建文件。 - sakhunzai

3
我使用apache ivyMaven Central下载liquibase及其数据库驱动程序依赖项。
Ivy本身只是一个jar文件,也可以从Maven Central下载

示例

此示例运行标准的liquibase changeset并创建h2数据库。Bash脚本将下载并缓存所需的jar文件。

├── changesets
│   └── scottTiger.xml
├── ivy.xml
├── liquibase.properties
└── liquibase.sh

按照以下方式运行

./liquibase.sh update

liquibase.sh

Apache ivy可以作为可执行的jar文件使用。

#!/bin/bash
java -jar $HOME/.ant/lib/ivy.jar \
     -error \
     -ivy ivy.xml \
     -main liquibase.integration.commandline.Main \
     -args $@

ivy.xml

<ivy-module version="2.0">
    <info organisation="com.myspotontheweb" module="demo"/>
    <dependencies>
        <dependency org="org.liquibase" name="liquibase-core" rev="latest.release" conf="default"/>
        <dependency org="com.h2database" name="h2" rev="latest.release" conf="default"/>
    </dependencies>
</ivy-module>

liquibase.properties

url=jdbc:h2:./db/scottTiger
driver=org.h2.Driver
username=user
password=pass
changeLogFile=changesets/scottTiger.xml
logLevel=info

O'Connor,这听起来非常有趣。我有几个数据库(mysql),需要在应用程序(php)安装期间进行设置。我大多数情况下都是使用Bash脚本完成。我想知道我们是否可以使用Apache Ivy来实现这个目的。 - sakhunzai
@sakhunzai Liquibase是一个Java程序,而Ivy用于下载和缓存Java程序依赖项。只需更新ivy.xml文件以下载mysql驱动程序jar并更改liquibase属性文件中的URL即可。希望这可以帮助到您。 - Mark O'Connor

1

安装Liquibase需要按照以下步骤进行:

  1. 安装并提取Liquibase二进制文件
  2. 安装Java JDK
  3. 安装数据库的JDBC驱动程序
  4. 通过设置Path变量使Liquibase在操作系统中可访问

详细步骤在此处


0
我曾经遇到过同样的问题。请使用以下命令:wget https://github.com/liquibase/liquibase/releases/download/v3.8.1/liquibase-3.8.1.tar.gz 为了获取正确的URL,请前往liquibase 下载页面并使用浏览器检查功能查看URL。在那里,您将获得与wget一起使用的正确链接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接