如何将PostgreSQL从9.6版本升级到10.1版本而不丢失数据? [关闭]

2024-01-27

我正在将 PostgreSQL 数据库用于我的 Ruby on Rails 应用程序(在 Mac OS X 10.9 上)。

有没有关于如何升级PostgreSQL数据库的详细说明?

我担心我会破坏数据库中的数据或弄乱它。


假设您已使用 home-brew 安装和升级 Postgres,则可以执行以下步骤。

  1. 停止当前的 Postgres 服务器:

    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

  2. 初始化一个新的10.1数据库:

    initdb /usr/local/var/postgres10.1 -E utf8

  3. run pg_upgrade (注意:如果您要从以下版本以外的版本升级,请更改 bin 版本):

    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启用详细的内部日志记录

    -d旧数据库集群配置目录

    -D新的数据库集群配置目录

    -b旧的 PostgreSQL 可执行目录

    -B新的 PostgreSQL 可执行目录

  4. 将新数据移动到位:

    cd /usr/local/var
    mv postgres postgres9.6
    mv postgres10.1 postgres
    
  5. 重新启动 Postgres:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

  6. Check /usr/local/var/postgres/server.log了解详细信息并确保新服务器正常启动。

  7. 最后,重新安装导轨pg gem

    gem uninstall pg
    gem install pg
    

我建议你花一些时间阅读PostgreSQL 文档 https://www.postgresql.org/docs/10/static/upgrading.html准确了解您在上述步骤中所做的事情,以最大程度地减少挫折感。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将PostgreSQL从9.6版本升级到10.1版本而不丢失数据? [关闭] 的相关文章

  • Rails 多租户架构,限制多个租户的访问范围

    目前我们有一个单租户数据库架构 MySQL 运行着超过 100 个数据库 我们使用 Apartment gem 切换子域上的数据库连接 一切都很顺利 然而 我们现在需要创建所谓的 伞 客户端 它可以访问一组现有客户端的所有数据 我不认为这对
  • pq:无法调整共享内存段的大小。设备上没有剩余空间

    我在仪表板上有许多面板 数量约为 6 个 用于显示数据点图表 对 PostgreSQL 数据库的 Dockerized 实例进行查询 直到最近 面板都工作正常 有些面板停止工作并报告如下错误 pq 无法将共享内存段 PostgreSQL 2
  • Postgres、更新和锁定顺序

    我正在研究 Postgres 9 2 有 2 个更新 每个更新都有自己的事务 一个看起来像 UPDATE foo SET a 1 WHERE b IN 1 2 3 4 另一个也类似 UPDATE foo SET a 2 WHERE b IN
  • 如何在数据库中存储年月?

    是否有在数据库中存储年份和月份的标准方法 我需要根据月份和年份制作一些报告 我无法使用日期和函数实时提取月份 因为表很大 所以我需要预处理 我会和 Michael 的建议是什么 https stackoverflow com a 81694
  • Postgresql插入触发器设置值

    假设在 Postgresql 中 我有一个表T它的一栏是C1 我想在新记录添加到表中时触发一个函数T 该函数应该检查列的值C1在新记录中 如果它为 null 空 则将其值设置为 X 这可能吗 您需要触发器是正确的 因为为列设置默认值对您不起
  • 如何避免应用程序停止后 docker 容器停止

    有一个带有 Postgres 服务器的 docker 容器 postgres 停止或崩溃 无关紧要 我需要检查一些环境变量和一些文件的状态 默认情况下 容器在应用程序完成后停止 我知道有一个选项可以更改 dockerfile 中的默认行为
  • Postgresql 使用 IN 与 NOT IN 时的巨大性能差异

    我有两张桌子 transaksi 和 buku transaksi 大约有 25 万行 buku 大约有 17 万行 两个表都有名为 k999a 的列 并且两个表均不使用索引 现在我检查这两个陈述 声明一 explain select k9
  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1
  • Psycopg / Postgres:连接随机挂出

    我正在使用 psycopg2 作为我当前正在开发的cherrypy 应用程序 并使用 cli 和 phpgadmin 来手动处理一些操作 这是Python代码 One connection per thread cherrypy threa
  • Entity Framework Core 多对多更改导航属性名称

    我有一个名为 LogBookSystemUsers 的表 我想在 EF Core 5 中设置多对多功能 我几乎可以正常工作 但问题是我的 ID 列被命名为SystemUserId and LogBookId但是当 EF 进行连接时它会尝试使
  • 如何获取 PostgreSQL 中表上所有索引的列名列表?

    我有这个查询来获取表上的索引列表 SELECT ns nspname as schema name tab relname as table name cls relname as index name am amname as index
  • 在大表上快速使用 LIMIT 和 OFFSET 进行 SELECT

    我的表中有超过 1000 万条记录 SELECT FROM tbl ORDER BY datecol DESC LIMIT 10 OFFSET 999990 输出EXPLAIN ANALYZE on 解释 depesz com http e
  • Ruby on Rails:如何使用 JSONPath 访问(并保存到数据库)JSON 数组中的嵌套对象/属性?

    我正在尝试将 JSON 对象数组中的数据播种到我的数据库中 我有两个单独的数据库表 属性和单位 一个属性有许多单位 我已经能够通过 API 请求 JSON 数据 然后将其播种到数据库 成功地对属性信息 属性模型 执行此操作 但是 Valua
  • 微服务中的关系型数据库

    我有一个整体应用程序 当前使用 PostgreSQL 数据库 并且模式的设置与您对大多数关系数据库的期望相同 其中各种表数据通过 FK 链接回用户user id 我正在尝试了解有关微服务的更多信息 正在尝试将我的 python API 迁移
  • Django Postgres 全文 TrigramSimilarity 多个字段

    我想弄清楚如何使用TrigramSimilarity with unaccent对于多个字段 到目前为止我有 def filter by location self queryset location log info Filtering
  • 无法在 postgres insert 中插入问号

    我正在尝试运行一个简单的 Postgres SQL 插入 insert into Resources values 1 How are you 但插入后的结果是 ID Data 1 How are you 1 我知道 要插入单引号等字符 我
  • 如何在 Elixir 的 Ecto 查询中使用“case-when”?

    我有一个 SQL 查询 例如 SELECT SUM CASE WHEN
  • Django基于PK和另一个字段保存对象

    我正在尝试将 postgresql 中的分区表与 Django 安装一起使用 通过Google搜索主题 我发现Django本身不支持分区 所以我自己对表进行了分区 我根据第二个字段对表进行分区 该字段是另一个表上的外键 基本模型设置如下 c
  • Sails.js + Postgres:交易问题

    我试图使用 Postgres 作为数据库在 Sails 0 10 5 中实现事务 但操作最终没有提交 或回滚 这是我作为测试写下的一个简单的事务场景 使用 async js testTransaction function uri var
  • 在 Postgres 中为特定查询设置 work_mem

    我正在使用一个委托给 JDBC 驱动程序的库PostgreSQL 而且有些查询非常复杂 需要更多内存 我不想设置work mem对于所有查询来说都是大的 只是这个子集 问题是执行以下代码会导致错误 pseudo code for what

随机推荐