升级到 OS X Server v3.2.1 或更高版本后恢复自定 Postgres 数据

OS X 服务器使用 Postgres 数据库来储存服务数据。如果你在数据库中添加了自己的表格,那么在更新到 Server v3.2.1 或更高版本后,可能无法访问 Postgres 数据。

升级后,如果你发现 Postgres 数据无法访问,可以按照以下步骤操作。

  1. 以管理员身份登录服务器。

  2. 打开“终端”并使用以下命令。

    sudo serveradmin stop postgres

  3. 编辑“/资源库/Server/PostgreSQL/Config/org.postgresql.postgres.plist”并更改“unix_socket_directory to unix_socket_directories”。

  4. 在“终端”中使用以下命令:

cd /tmp

sudo mv /Library/Server/PostgreSQL/Data /Library/Server/PostgreSQL/DataOld

sudo -u _postgres /Applications/Server.app/Contents/ServerRoot/usr/bin/initdb --encoding UTF8 --locale=C -D /Library/Server/PostgreSQL/Data

sudo -u _postgres /Applications/Server.app/Contents/ServerRoot/usr/bin/pg_upgrade -b /Applications/Server.app/Contents/ServerRoot/usr/libexec/postgresql9.2 -B /Applications/Server.app/Contents/ServerRoot/usr/bin -d /Library/Server/PostgreSQL/DataOld -D /Library/Server/PostgreSQL/Data

sudo launchctl load -w /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/org.postgresql.postgres.plist

sudo serveradmin start postgres

确定所有数据都已成功迁移后,即可移除“/资源库/Server/PostgreSQL/DataOld”。

注:OS X 服务器使用的 Postgres 数据库只能用于系统使用的服务数据。避免向这个数据库中添加自定内容。如果你想在 OS X 服务器上运行 Postgres,应该下载并安装自己的实例。

发布日期: