TL;DR

从9.6.7回到9.6.6的例子

brew services stop postgresql 
brew services stop postgresql@9.6

brew uninstall postgresql 
brew uninstall postgresql@9.6

rm -rf /usr/local/var/postgres .psql_history .psqlrc .psql.local .pgpass .psqlrc.local

进入全屏模式 退出全屏模式

在此处选择具有所需版本的 Postgres.app 版本。安装它,“初始化”服务器然后运行:

sudo mkdir -p /etc/paths.d && echo /Applications/Postgres.app/Contents/Versions/9.6/bin | sudo tee /etc/paths.d/postgresapp

进入全屏模式 退出全屏模式

重新启动外壳。

详情

我在工作的项目的PostgreSQL版本是9.6.6。问题是我的机器使用了更高版本。每次运行db:migrate时都会导致与db/structure文件发生冲突。

像大多数在 macOS 上运行的开发人员一样,我通常使用 Homebrew。它允许通过运行brew switch formula@version轻松切换到另一个已安装的公式版本。你猜我试过了,但问题是 Homebrew 只处理每个版本的主要版本,我需要一个特定的次要版本。

因为我还需要在旧的和最近的 Rails 项目之间切换,所以我经常需要更改正在运行的 PostgreSQL 版本。我目前的解决方案是使用Postgres.app。

[Alt Postgres.app](https://res.cloudinary.com/practicaldev/image/fetch/s--Iis1dZT3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev。 s3.amazonaws.com/i/uiu88odsbeque9vpswzi.png)

如果您已经通过 Homebrew 在您的系统上安装了 PostgreSQL,但想在 Postgres.app 中使用特定版本(如以前的版本),只需按照以下步骤操作:

1\。删除所有已安装的 PostgreSQL 版本

  • 检查运行版本brew services list然后停止它们brew services stop postgresql

  • 删除所有已安装的公式,每个已安装版本为brew uninstall postgresqlbrew uninstall postgresql@version

  • 然后删除相关文件rm -rf /usr/local/var postgres .psql_history .psqlrc .psql.local .pgpass .psqlrc.local

2\。安装 Postgres.app

  • 下载具有所需版本的版本。

  • 安装它并创建一个新服务器:

[Alt Postgres.app](https://res.cloudinary.com/practicaldev/image/fetch/s--Tp7K_Fy---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev .s3.amazonaws.com/i/rylmc6d1j63yoo1cjbnq.png)

  • 初始化它。

3\。使 PostgreSQL 相关工具可与终端一起使用

最后一步允许您使用 pg_dump 等工具。只需运行:

sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/9.6/bin | sudo tee /etc/paths.d/postgresapp`

进入全屏模式 退出全屏模式

(不要忘记用您的版本替换 9.6)。

重新启动你的外壳。欢迎回到过去!

如果您有更好的解决方案来像我一样在没有外部应用程序的情况下在特定版本的 PostgreSQL 之间切换,请不要犹豫分享! :)

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐