我正在为我的Ruby on Rails应用程序(在Mac OS X 10.9上)使用PostgreSQL数据库。
关于如何升级PostgreSQL数据库有详细的说明吗?
我担心我会破坏数据库中的数据或把它弄乱。
我正在为我的Ruby on Rails应用程序(在Mac OS X 10.9上)使用PostgreSQL数据库。
关于如何升级PostgreSQL数据库有详细的说明吗?
我担心我会破坏数据库中的数据或把它弄乱。
当前回答
假设您已经使用自制程序安装和升级Postgres,您可以执行以下步骤。
Stop current Postgres server: launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Initialize a new 10.1 database: initdb /usr/local/var/postgres10.1 -E utf8 run pg_upgrade (note: change bin version if you're upgrading from something other than below): pg_upgrade -v \ -d /usr/local/var/postgres \ -D /usr/local/var/postgres10.1 \ -b /usr/local/Cellar/postgresql/9.6.5/bin/ \ -B /usr/local/Cellar/postgresql/10.1/bin/ -v to enable verbose internal logging -d the old database cluster configuration directory -D the new database cluster configuration directory -b the old PostgreSQL executable directory -B the new PostgreSQL executable directory Move new data into place: cd /usr/local/var mv postgres postgres9.6 mv postgres10.1 postgres Restart Postgres: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Check /usr/local/var/postgres/server.log for details and to make sure the new server started properly. Finally, re-install the rails pg gem gem uninstall pg gem install pg
我建议你花点时间阅读PostgreSQL文档,了解你在上述步骤中所做的事情,以减少挫折。
其他回答
这对我很有用。
https://gist.github.com/dideler/60c9ce184198666e5ab4
言简意赅。老实说,我的目标不是理解PostgreSQL的精髓,我只想把事情做好。
我的解决方案是将这两种资源结合起来:
https://gist.github.com/tamoyal/2ea1fcdf99c819b4e07d
and
http://www.gab.lc/articles/migration_postgresql_9-3_to_9-4
第二个比第一个更有帮助。也要不要,不要按照步骤去做,因为有些是没有必要的。 此外,如果您不能通过postgres控制台备份数据,您可以使用替代方法,使用pgAdmin 3或其他程序进行备份,就像我在我的案例中所做的那样。
还有,链接:https://help.ubuntu.com/stable/serverguide/postgresql.html 帮助设置postgres用户的加密密码和md5认证。
所有这些都完成后,检查终端中运行的postgres服务器版本:
sudo -u postgres psql postgres
输入密码后在postgres终端运行:
SHOW SERVER_VERSION;
它将输出如下内容:
server_version
----------------
9.4.5
设置和启动postgres我使用命令:
> sudo bash # root
> su postgres # postgres
> /etc/init.d/postgresql start
> /etc/init.d/postgresql stop
然后从文件中恢复数据库:
> psql -f /home/ubuntu_username/Backup_93.sql postgres
或者如果不奏效,试试这个:
> pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d name_of_database ~/your_file.dump
如果你正在使用Rails做一个bundle exec rake db:migrate后拉代码:)
看来Homebrew现在已经有了解决方案:
$ brew info postgresql
...
==> Caveats
To migrate existing data from a previous major version of PostgreSQL run:
brew postgresql-upgrade-database
....
假设您已经使用自制程序安装和升级Postgres,您可以执行以下步骤。
Stop current Postgres server: launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Initialize a new 10.1 database: initdb /usr/local/var/postgres10.1 -E utf8 run pg_upgrade (note: change bin version if you're upgrading from something other than below): pg_upgrade -v \ -d /usr/local/var/postgres \ -D /usr/local/var/postgres10.1 \ -b /usr/local/Cellar/postgresql/9.6.5/bin/ \ -B /usr/local/Cellar/postgresql/10.1/bin/ -v to enable verbose internal logging -d the old database cluster configuration directory -D the new database cluster configuration directory -b the old PostgreSQL executable directory -B the new PostgreSQL executable directory Move new data into place: cd /usr/local/var mv postgres postgres9.6 mv postgres10.1 postgres Restart Postgres: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Check /usr/local/var/postgres/server.log for details and to make sure the new server started properly. Finally, re-install the rails pg gem gem uninstall pg gem install pg
我建议你花点时间阅读PostgreSQL文档,了解你在上述步骤中所做的事情,以减少挫折。
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