首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    renovate: 处理 Postgres 模式迁移

    去年 10 月,我在 review 数据库迁移代码时,不断回溯十多个已有的迁移文件,艰难地试图了解目前数据库 schema 的最终形态时,萌生了做一个数据库模式迁移工具的想法。...当时主流的模式迁移工具,无论是直接撰写 SQL,还是撰写某个语言的 DSL,都要求开发者以数据库上一次迁移的状态为基础,撰写对该状态的更改。...; 当一个数据库维护数年,这样的迁移脚本会多达数十个甚至上百个,导致阅读和维护上的不便。...它是最接近于我想要的工具:通过描述当前数据库模式,然而自动生成迁移脚本。...然而 atlas 对 Postgres 的支持并不太好,生成的 migration plan 很多时候都是破坏性的(比如 drop table 再 crate table),这根本无法在生产环境使用。

    83220

    零停机迁移 Postgres的正确方式

    作者 | RIGAS PAPATHANASOPOULOS 译者 | 王强 策划 | 万佳 在这篇博文中,我们会介绍如何在零停机时间的前提下,使用 Bucardo 将 Postgres 数据库迁移到一个新实例上...我们已成功使用这一流程将我们的 Postgres 数据库从 9.5 版迁移到 Amazon RDS 上的 12.5 版,但该流程不只适用于 RDS,也不依赖 AWS 独有的任何内容。...这种迁移策略应该能适用于任何自托管或托管的 Postgres。 分 析 在本文中,我们将讨论将多个 Web 应用程序(如微服务)从一个数据库迁移到另一个的过程。...迁移用户 Bucardo 不会迁移 Postgres 用户,你需要手动转移你的用户帐户。我们为此编写了一个脚本。这个脚本会到新数据库,使用从配置服务器检索到的密码创建新用户,然后设置他们的权限。...迁移模式和数据 你可以使用 Postgres 及其pg_dump/pg_restore工具来传输你的模式和数据。这个步骤很简单,但有一个要点。

    1.7K20

    MySQL Keyring使用Hashicorp Vault

    用户的大多数数据都是存储在某种数据库中,可能存储在云中,也可以存储在内部的基础设施中。...这将确保需要通过密钥来访问数据库存储文件中的数据。 接下来,我们只需要将密钥存储在某个地方。...从MySQL 8.0.18开始,在众多功能中,我们添加了keyring_hashicorp插件,该插件使用Hashicorp Vault作为后端。...该插件功能的简短概述如下: 实现用于密钥管理的MySQL Keyring接口 使InnoDB可以使用它来存储表加密密钥 支持采用文件后端的 Hashicorp Vault KV引擎 使用Hashicorp...Vault AppRole身份验证样式 通过可选的CA验证支持与保管库的HTTPS链接 提供可选的内存中密钥缓存功能 支持与其他现有后端之间的迁移 感谢关注MySQL!

    1.3K40

    Uber为什么放弃Postgres选择迁移到MySQL?

    具体地说,之前使用 Postgres 的地方,现在改用 Schemaless,一种构建在 MySQL 之上的新型数据库分片层。...Postgres 使用另一个版本字段来确定哪个元组是最新的。数据库根据这个字段确定哪个元组对不允许查看新版本数据的事务可见。 在 Postgres 中,主索引和二级索引都直接指向磁盘上的元组偏移量。...级联复制将数据中心间的带宽限制为只能满足主数据库和单个副本之间的带宽需求,虽然第二个数据中心里还有很多副本。因为 Postgres 复制协议的冗繁,使用了大量索引的数据库会有很大的数据量。...等待副本完全跟上主数据库的所有更新 我们从 Postgres 9.1 开始,并成功完成了升级过程,迁移到了 Postgres 9.2。...现在,我们仍然保留了一些旧的 Postgres 实例,但大部分数据库都建立在 MySQL 之上(通常使用 Schemaless 层),或者在某些特殊情况下会使用像 Cassandra 这样的 NoSQL

    3.3K10

    Postgres容器使用

    下载postgres镜像 $ sudo docker pull postgres 启动postgres容器 $ sudo docker run --name mypostgres -e POSTGRES_PASSWORD...如果在启动容器的时候需要执行一些初始化操作,我们可以写一些脚本(比如:.sh或者.sql),然后放到scripts文件夹中,启动容器的时候使用-v参数挂载到容器中,容器启动的时候会自动执行这些脚本,比如...docker-entrypoint-initdb.d postgres 使用命令行连接到postgres数据库 启动一个容器并使用psql连接到容器 $ sudo docker run -it --rm...--link mypostgres postgres psql -h mypostgres -U postgres Password for user postgres: psql (16.4 (Debian...postgres=# \dt postgres=# select 1; 使用nodejs连接到postgres数据库 安装pg库 npm install pg 连接并查询postgres数据库 const

    33510

    使用 Docker 和 Traefik 搭建 Vault

    使用 Docker 和 Traefik 搭建 Vault 随着使用的机器、服务越来越多,项目中依赖的变量、配置、秘钥等敏感信息,变的越来越多。...我们先聊聊第一个场景下,Vault 的使用。 编写 Vault 配置文件 在编写 compose 配置启动服务前,我们需要先编写 Vault 的配置。...,团队实际使用,建议使用 Etcd 或者数据库、云厂商储存池等方案 提供服务的端口地址,以及是否开启 SSL 因为在容器中对外提供服务,需要绑定地址为 0.0.0.0 不开启 SSL 是因为证书挂载这件事...配置并开始使用 Vault 这里个人使用的时候,可以都填写“1”,减少使用的“复杂度”。 根据上一步的设置,Vault 会给我们提供自动生成的秘钥,分别用于接口验证、系统登录使用。...所以 Vault 还提供了 名为 KV v2 的储存仓库,在这个模式之下,数据储存是有版本控制功能的,但是使用起来稍稍麻烦一些,接口文档也不是很清晰,所以这里单独聊一下,如何使用 v2 版本的 KV 进行数据储存

    80520

    使用 Vault 管理数据库凭据和实现 AppRole 身份验证

    Vault 是一个开源工具,可以安全地存储和管理敏感数据,例如密码、API 密钥和证书。它使用强加密来保护数据,并提供多种身份验证方法来控制对数据的访问。...Vault 可以部署在本地或云中,并可以通过 CLI、API 或 UI 进行管理。 本文将介绍 Vault 的初始化、数据库密钥引擎和身份验证方法。...我们将首先介绍如何使用 UI、CLI 或 REST API 初始化 Vault。然后,我们将介绍如何使用 Vault 的数据库密钥引擎来管理数据库凭据。...最后,我们将介绍如何使用 AppRole 身份验证方法来保护 Vault 中的数据。.../v1/sys/init 数据库密钥引擎 - Mysql https://developer.hashicorp.com/vault/docs/secrets/databases/mysql-maria

    1.2K11

    在 Kubernetes 上部署使用 Vault

    本文就将来介绍如何使用 HashiCorp Vault 在 Kubernetes 集群中进行秘钥管理。 ? Vault 介绍 Vault 是用于处理和加密整个基础架构秘钥的中心管理服务。...Vault 通过 secret 引擎管理所有的秘钥,Vault 有一套 secret 引擎可以使用,一般情况为了使用简单,我们会使用 kv(键值)secret 引擎来进行管理。...这在 Rolling out 更新时很有用 使用 Vault 会强制代码通过 Vault 接口来获取各种数据连接密码或秘钥。避免开发人员无意获得和在代码中使用秘钥密码。...可以作为事后证据成为被入侵的线索 数据库和 API 秘钥不再散落在代码各处 安装 同样为了方便我们这里还是使用 Helm3 在 Kubernetes 集群上安装 Vault,对应的环境版本如下所示: $...使用 假如现在我们有一个需求是希望 Vault 将数据库的用户名和密码存储在应用的 internal/database/config 路径下面,首先要创建 secret 需要先开启 kv secret

    2.7K20

    CentOS7安装postgres数据库

    /usr/pgsql-10/bin/postgresql-10-setup initdb#启动数据库sudo systemctl start postgresql-10#设置开机自启sudo systemctl...enable postgresql-10.service#设置数据库密码su - postgrespsqlALTER USER postgres WITH PASSWORD '111111';#退出数据库...create database DB1;PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统...POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。...另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

    73710

    Postgres 分布式数据库

    分布式数据库 聊起分布式数据库,大家第一印象估计是 谷歌的 Spanner ,以及 TiDB。...其实还有另外一种分布式 Postgres-XC (目前已经迭代到 PostgreSQL-X2 ),Postgres-XC 数据库系统主要是基于水平可伸缩的share nothing 架构,支持全局事务...172.16.78.32 master /tbase/pgxc/nodes/dn001 dn002 172.16.78.33 master /tbase/pgxc/nodes/dn002 接下来可以使用...小结 总体感受下来 postgres-xc 的分布式架构没有使用基于raft/paxos协议管理分布式数据写入,dn节点使用主从方式,在性能上会有一些优势,不过具体多少还没完全测试,这个和机器规格,参数配置有关...TBase 开源是一个值得肯定的事情,文档,社区支持等有一些列的支持动作,但是没有像某些开源分布式数据库做的那么活跃,社区,微信群,各种互联网公司试/使用,考试认证。

    2.4K31

    迁移方案详解 | 使用YMP从异构数据库迁移到YashanDB

    如何从异构的Oracle、MySQL等数据库将存量的数据迁移至国产数据库,是企业技术升级和国产化战略中不可或缺的一环。...维度五:通用性和易用性如果是针对一次迁移场景来编写大量的脚本,做定制化方案的成本比较高,且难以复用。因此,通过不断实践积累并提炼宝贵的经验与流程,确保迁移方案既具备通用性又易于使用,是尤为重要的。...常用的迁移手段YashanDB在进行Oracle、MySQL等异构数据库迁移到YashanDB时,主要采用以下两种常用迁移手段:01使用YashanDB自带的工具,如yasldr先采用源库导出工具导出成...02使用开源工具,如Kettle、DBeaver等进行迁移采用ETL工具(如Kettle)或IDE工具(如DBeaver)的数据迁移: 优势:易用性高。...,使用起来既保证了评估结果的正确性又比较灵活。

    33710

    flask 数据库迁移_数据库迁移方案

    在开发的过程中,需要修改数据库的模型,而且需要在修改之后更新数据库,最直接就是删除旧表,但是会丢失数据。所有最好的方式就是数据库迁移。...它可以追踪数据库模型的变化,然后把变动应用到数据库中。 在flask中可以使用Flask-Migrate扩展,来实现数据迁移。...会创建migrations文件夹,所有的迁移文件都放在里面。 python manage.py db init 创建自动迁移脚本: upgrade():函数把迁移中的改动应用到数据库中。...自动创建的迁移脚本会 根据模型定义和数据库当前状态的差异,生成upgrade()和downgrade()函数的内容。 对比不一定完全正确,有可能会遗漏一些细节,需要进行检查。...python manage.py db upgrade 更新完之后,在数据库会出现一个表 versions每迁移一次里面都会生成一个文件。

    4.6K20

    迁移方案详解 | 使用YMP从异构数据库迁移到YashanDB

    如何从异构的Oracle、MySQL等数据库将存量的数据迁移至国产数据库,是企业技术升级和国产化战略中不可或缺的一环。...维度五:通用性和易用性 如果是针对一次迁移场景来编写大量的脚本,做定制化方案的成本比较高,且难以复用。因此,通过不断实践积累并提炼宝贵的经验与流程,确保迁移方案既具备通用性又易于使用,是尤为重要的。...使用YashanDB自带的工具如yasldr 先采用源库导出工具导出成csv,再使用YashanDB官方导入工具yasldr导入: 优势1:高度灵活性。...使用开源工具如Kettle、DBeaver等进行迁移 采用ETL工具(如Kettle)或IDE工具(如DBeaver)的数据迁移: 优势:易用性高。...,使用起来既保证了评估结果的正确性又比较灵活。

    24210

    sqlserver数据库数据迁移_mysql 数据库迁移

    前言: 在我们开发某些项目后,难免会遇到更换服务器,重新部署数据库的时候,那么问题来了?...究竟怎么如何操作才能达到最佳效果; 起源: (1):起初仅仅是为了测试用,所以迁移的时候不必把数据库中的数据全部迁移过去,仅仅需要数据库的架构即可; (2):某些时候需要更换服务器,那么此时已经在内部存储了大量数据了...,此时只能把架构+数据全部迁移过来; 解说: 以本地“Login”数据库为例,帮助大家理解四种迁移方式; 一:“分离”—>“附加” 说明: (1)或许会遇到分离数据库后,无法在其它服务器附加数据库的问题...(权限不够,自行更改属性) (2)推荐把数据库放到默认的数据库文件存放目录(E:\Microsoft SQL Server\实例根目录\MSSQL12.SQLEXPRESS\MSSQL\DATA); (...,防止误操作,类似于保存不同版本信息; ---- 四:生成“SQL脚本” 说明:兼容性最好,轻松避免数据库迁移的其它问题 ----

    7.2K40
    领券