我有一个问题,我的 CI 构建规范失败,但它们在本地通过了。 我在两者上使用相同版本的 ruby,并且在两者上安装相同的 sqlite3 gem。
我能发现的唯一区别是 CI 服务器似乎使用 sqlite3 版本:
3.7.17
我的mac安装了sqlite3版本:
3.25.1
失败的规范因 SQL 语法错误而失败:
ActiveRecord::StatementInvalid: SQLite3::SQLException: near "WITH": syntax error: ;WITH included_items
我想在本地测试一下 - 看看是否是由于 Sqlite 版本所致。 我想以某种方式将我本地 Mac 版本的 sqlite3 降级到与 CI 服务器相同的版本。
我尝试使用brew,但似乎找不到任何其他版本的任何公式。
$ brew install [email protected]
Error: No available formula with the name "[email protected]"
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
git -C "$(brew --repo homebrew/core)" fetch --unshallow
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.
有什么想法可以做到这一点吗?
来自 Formula/sqlite3.rb (*) 的提交日志:
commit a9ad65c5f2fdc03aa47e4333fcd0df558136b099
Author: Jack Nagel <[email protected]>
Date: Mon May 20 20:25:17 2013 -0500
sqlite 3.7.17
所以基本的想法是运行:
$ COMMIT=a9ad65c5f2fdc03aa47e4333fcd0df558136b099
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/sqlite3.rb
有关更多详细信息,请参阅此要点: https://gist.github.com/demosten/bdbc4f07c2ddbea0b8f0ad50a98ae5ff
(*)https://github.com/Homebrew/homebrew-core/commits/master/Formula/s/sqlite.rb