我正在为我的Ruby on Rails应用程序(在Mac OS X 10.9上)使用PostgreSQL数据库。
关于如何升级PostgreSQL数据库有详细的说明吗?
我担心我会破坏数据库中的数据或把它弄乱。
我正在为我的Ruby on Rails应用程序(在Mac OS X 10.9上)使用PostgreSQL数据库。
关于如何升级PostgreSQL数据库有详细的说明吗?
我担心我会破坏数据库中的数据或把它弄乱。
当前回答
用户手册详细介绍了这个主题。您可以:
pg_upgrade就地;或 Pg_dump和pg_restore。
如果有疑问,请使用转储。不要删除旧的数据目录,保留下来,以防出现问题/你犯了错误;这样,您就可以返回到未更改的9.3安装。
具体操作请参见产品手册。
如果你被卡住了,发一个详细的问题,解释你是如何被卡住的,在哪里,你首先尝试了什么。这也取决于你如何安装PostgreSQL,因为在OS X上有几个不同的PostgreSQL“发行版”(不幸的是)。所以你需要提供这些信息。
其他回答
用户手册详细介绍了这个主题。您可以:
pg_upgrade就地;或 Pg_dump和pg_restore。
如果有疑问,请使用转储。不要删除旧的数据目录,保留下来,以防出现问题/你犯了错误;这样,您就可以返回到未更改的9.3安装。
具体操作请参见产品手册。
如果你被卡住了,发一个详细的问题,解释你是如何被卡住的,在哪里,你首先尝试了什么。这也取决于你如何安装PostgreSQL,因为在OS X上有几个不同的PostgreSQL“发行版”(不幸的是)。所以你需要提供这些信息。
尽管上面有所有的答案,我还是有5美分。
它适用于任何操作系统和从任何到任何postgres版本。
停止任何正在运行的postgres实例; 安装新版本并启动它;检查你是否可以连接到新版本; 将旧版本postgresql.conf ->端口从5432修改为5433; 启动旧版postgres实例; 打开终端并cd到新版本的bin文件夹; 执行命令pg_dumpall -p 5433 -U <username> | psql -p 5432 -U <username> 停止旧的postgres运行实例;
在Windows 10上,因为我有npm,所以我安装了rimraf包。NPM安装rimraf
使用pg_dump -U $username——format=c——file=$mydatabase命令逐个备份所有数据库。美元sqlc dbname
然后安装了最新的PostgreSQL版本,即11.2,这提示我这次使用端口5433。
其次是卸载旧版本的PostgreSQL我是10。注意,卸载程序可能会提示不删除文件夹C:\PostgreSQL\10\data。这就是为什么我们有下一步使用rimraf永久删除文件夹和它的子文件夹。
2 .进入PostgreSQL安装目录,执行命令rimraf 10。10为目录名。注意使用旧版本的PostgreSQL,比如9.5之类的。
现在将C:\PostgreSQL\pg11\bin, C:\PostgreSQL\pg11\lib添加到Windows环境变量中。注意我的新安装版本是11,这就是为什么我使用pg11。
打开C:\PostgreSQL\data\pg11,打开PostgreSQL .conf编辑port = 5433到port = 5432
就是这样。打开cmd,输入psql -U postgres
现在,您可以使用命令pg_restore -U $username——dbname=$databasename $filename来逐个恢复所有已备份的数据库
Mac通过homebrew:
编译petere/postgresql,
(例如:Brew install peere /postgresql/postgresql-9.6)
删除旧Postgres:
Brew unlink postgresql
编译链接-f postgresql-9.6
如果发生任何错误,不要忘记阅读并遵循每一步的酿造说明。
查看更多信息:https://github.com/petere/homebrew-postgresql
如果你正在使用自制和自制服务,你可能只需要做:
brew services stop postgresql
brew upgrade postgresql
brew postgresql-upgrade-database
brew services start postgresql
我认为如果您正在使用高级postgres功能,这可能不完全有效,但它对我来说非常有效。