首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Ubuntu 14.04上使用PostgreSQL和Ruby on Rails应用程序

本教程将向您展示如何设置开发Ruby on Rails环境,该环境允许您的应用程序在Ubuntu 14.04服务器上使用PostgreSQL数据库。首先,我们将介绍如何安装和配置PostgreSQL。...然后我们将向您展示如何创建使用PostgreSQL作为其数据库服务器的rails应用程序。 准备 本教程要求具有可用的Ruby on Rails开发环境。...现在您可以输入以下命令退出PostgreSQL控制台: \q 我们现在创建一个Rails应用程序。 创建新的Rails应用程序 在主目录中创建一个新的Rails应用程序。...使用-d postgresql选项将PostgreSQL设置为数据库,并确保将突出显示的单词替换为您的应用程序名称: cd ~ rails new appname -d postgresql 然后进入应用程序的目录...配置数据库连接 您创建的PostgreSQL用户将用于创建应用程序的测试和开发数据库。我们需要为您的应用程序配置正确的数据库设置。 在您喜欢的文本编辑器中打开应用程序的数据库配置文件。

3.4K00

慢的不是 Ruby,而是你的数据库

我推测,ActiveRecord 采用了一种更高效的策略,将 Postgresql 中的日期时间转换为本地 DateTime。 尽管如此,Ruby 的糟糕性能相对来说并不重要。...我曾在一个拥有百万级用户的应用程序中,导致数据库服务器集群崩溃:原因在于一个无关控制器的简单更改,使 Rails 切换到一个外部连接,该连接具有巨大物化视图,本不应以这种方式连接(用于报告)。...我开发的 Rails 应用程序数量惊人,其中包含某种形式的 .sort(params[:sort by]):仅在 2021 年,我就开发了三个独立的 Rails 应用程序,所有这些应用程序都可以通过使用...使用 Rails,很容易累积许多小错误,从而使数据库成为瓶颈。但是,即使所有这些都在你的控制之下,高性能的数据库调用仍然比许多其他调用慢很多。...[4] 一个常见的 Rails 应用程序将发送电子邮件,可能会生成 pdf,接收 CSV 或导出 CSV,但所有交互通常都通过 HTTP 进行。

15130
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在Ubuntu 14.04上使用Git Hooks部署Rails应用程序

    介绍 在本教程中,我们将向您展示如何使用Git hooks自动将Rails应用程序的生产环境部署到远程Ubuntu 14.04服务器。...使用以下命令退出PostgreSQL控制台: \q 现在,我们已准备好使用正确的数据库连接信息配置您的应用程序。...我们将使用vi: vi config/database.yml 查找应用程序数据库配置的生产部分,并将其替换为生产数据库连接信息。...git init --bare 由于这是一个裸存储库,因此没有工作目录,并且传统设置中位于.git中的所有文件都在主目录中。...添加Production Git Remote 现在我们已经在生产服务器上设置了所有内容,让我们将生产git remote添加到我们的应用程序的存储库中。

    2.5K60

    MySQL8和PostgreSQL10功能对比

    每个人都在担心甲骨文(或最初为SUN)收购MySQL时,他们会毁了该产品,但过去十年来情况并非如此。实际上,收购后发展加速。Postgres在工作治理和协作社区方面拥有悠久的历史。...也就是说,如果您在30台服务器上运行Rails应用程序,其中每台服务器具有16个CPU内核和32个Unicorn worker,则您有960个连接。...在所有应用程序中,可能只有不到0.1%会达到这个规模,但这是需要牢记的。 聚合索引对比堆(Heap)表 聚合索引是其中行被直接嵌入主键的B树结构内的表结构。...(MySQL的页面中必须至少包含2行,巧合的是16KB / 2 = 8KB) 那么当列中有一个大的JSON对象时会发生什么? ? Postgres使用TOAST(专用的影子表存储)。...MySQL上的压缩不仅适用于页面外的大对象,而且适用于所有页面。它是通过在稀疏文件中使用打孔来实现的,稀疏文件受ext4或btrfs等现代文件系统支持。

    2.8K20

    如何在Ubuntu 14.04上使用Puma和Nginx部署Rails应用程序

    本教程将帮助您部署Ruby on Rails应用程序的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Puma和Nginx。...如果没有,第一步是创建一个使用PostgreSQL作为其数据库的新Rails应用程序。 此命令将创建一个名为“appname”的新Rails应用程序,该应用程序将使用PostgreSQL作为数据库。...使用以下命令退出PostgreSQL控制台: \q 现在,我们已准备好使用正确的数据库连接信息配置您的应用程序。 配置数据库连接 确保您位于应用程序的根目录(cd ~/appname)中。...管理环境变量的一种简单方法是使用rbenv-vars插件,我们可以使用它来在运行时将密码和机密加载到我们的应用程序中。...手动启动Puma应用程序 要立即启动所有托管Puma应用程序,请运行以下命令: sudo start puma-manager 您也可以使用pumaUpstart脚本启动单个Puma应用程序,如下所示:

    5.4K10

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

    作者 | Evan Klitzke 译者 | 无明 策划 | 小智 Uber 的早期架构包含了一个用 Python 开发的单体后端应用程序,这个应用程序使用 Postgres 作为数据存储。...新版本的 Postgres 可能还会出现此类错误,并且由于数据复制的方式,这类问题有可能被传播到所有的数据库中。 副本 MVCC Postgres 没有提供真正的副本 MVCC 支持。...MySQL 的逻辑复制格式还意味着存储引擎层中的磁盘变更不会影响复制格式。在进行 MySQL 升级时,典型的做法是一次将更新应用于一个副本,在更新完所有副本后,将其中一个提升为新的主副本。...在 MySQL 中使用 10000 个左右的并发连接,这种情况并不少见,实际上,在我们现有的某些 MySQL 实例上,连接数已经接近这个数字。...Postgres 文档建议采用进程外连接池机制来处理大量连接,但没有详细说明是为什么。因此,我们使用 pgbouncer 来处理 Postgres 的连接池。

    2.9K10

    2019年你应该知道的编程语言、框架和工具

    我们认为,在 2018 年,渐进式 Web Apps 将变得更加重要,也值得我们去探究。在这里查看相关概述。 聊天机器人 从运行聊天机器人的平台到构建其的框架,现在每个人都在谈论它。...这个版本基于了去年 7.0 版本主要性能的改进,将 PHP 转变为构建 Web 应用程序的快速平台。如果你打算学习,我们推荐你看看 PHP 之道中的最佳实践。...挑一个或多个学习:Angular 2、Vue.js、Ember、Bootstrap、LESS/SASS ---- 后端开发 后端 后端有众多的选择,但所有的选择都取决于你对编程语言或特定性能需求的偏好上...Web 开发中的一个持续趋势是远离后端的业务逻辑,并将该层转换为由前端和移动应用程序使用的 API 上。...Postgres 适用于大规模、TB 级规模的数据集以及繁忙的 Web Apps,这些优化都是很受欢迎的。 MySQL 8.0 将是数据库的下一个主要版本。

    93730

    如何在Ubuntu 14.04上使用MySQL和Ruby on Rails应用程序

    本教程将向您展示如何在Ubuntu 14.04服务器上设置开发Ruby on Rails环境,以允许您的应用程序使用MySQL数据库。首先,我们将介绍如何安装MySQL和MySQL适配器gem。...然后我们将向您展示如何创建使用MySQL作为其数据库服务器的rails应用程序。 准备 一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。...使用该-d mysql选项将MySQL设置为数据库,并确保将突出显示的单词替换为您的应用程序名称: cd ~ rails new appname -d mysql 然后进入应用程序的目录: cd appname...配置数据库连接 如果您按照本教程中的MySQL安装说明操作,则为MySQL的root用户设置密码。MySQL根登录将用于创建应用程序的测试和开发数据库。...IP地址在Web浏览器中访问您的Rails应用程序: http://server_public_IP:3000 如果您看到“欢迎登陆”Ruby on Rails页面,您的应用程序已正确配置,并连接到MySQL

    4.9K00

    你应该知道的编程语言,代码学习从关注我开始

    我们认为,在 2018 年,渐进式 Web Apps 将变得更加重要,也值得我们去探究。在这里查看相关概述。 聊天机器人 从运行聊天机器人的平台到构建其的框架,现在每个人都在谈论它。...这个版本基于了去年 7.0 版本主要性能的改进,将 PHP 转变为构建 Web 应用程序的快速平台。如果你打算学习,我们推荐你看看 PHP 之道中的最佳实践。...挑一个或多个学习:Angular 2、Vue.js、Ember、Bootstrap、LESS/SASS ---- 后端开发 后端 后端有众多的选择,但所有的选择都取决于你对编程语言或特定性能需求的偏好上...Web 开发中的一个持续趋势是远离后端的业务逻辑,并将该层转换为由前端和移动应用程序使用的 API 上。...Postgres 适用于大规模、TB 级规模的数据集以及繁忙的 Web Apps,这些优化都是很受欢迎的。 MySQL 8.0 将是数据库的下一个主要版本。

    1K00

    如何连接Docker容器

    使用Docker来容纳应用程序时,通常的做法是在单独的容器中运行应用程序的每个组件。例如,一个网站可能有一个Web服务器,应用程序和数据库,每个都在自己的容器中运行。...本指南将使用一个简单的示例应用程序来演示Docker容器通信的基础知识。该应用程序将包含一个Node.js应用程序,该应用程序从PostgreSQL数据库中读取数据。...把'newpassword'替换为postgres您在上一节中设置的数据库用户密码。 注意该pg模块还可以使用环境变量来配置客户端连接。这是生产应用程序的推荐选项。...连接两个容器 在本节中,应用程序和数据库将在不同的容器中运行。您可以使用Docker Hub中的官方postgres镜像并加载之前创建的SQL。...Docker Compose还允许您设置环境值,因此您可以简化应用程序以使用这些值,而不是将值硬编码。

    5.7K41

    「首席看架构」CDC (捕获数据变化) Debezium 介绍

    Debezium是一个分布式平台,它将您现有的数据库转换为事件流,因此应用程序可以看到数据库中的每一个行级更改并立即做出响应。...部署了用于MySQL和Postgres的Debezium连接器来捕获这两个数据库的更改。...为此,两个连接器使用客户端库建立到两个源数据库的连接,在使用MySQL时访问binlog,在使用Postgres时从逻辑复制流读取数据。...如果需要,可以在Debezium的主题路由SMT的帮助下调整主题名称,例如,使用与捕获的表名不同的主题名称,或者将多个表的更改转换为单个主题。...与其他方法如轮询或双写不同,基于日志的CDC由Debezium实现: 确保捕获所有数据更改 以非常低的延迟(例如,MySQL或Postgres的ms范围)生成更改事件,同时避免增加频繁轮询的CPU使用量

    2.6K20

    Web框架基准测试

    Web Framework Benchmarks 这是许多执行基本任务(例如JSON序列化,数据库访问和服务器端模板组成)的Web应用程序框架的性能比较。每个框架都在实际的生产配置中运行。...测试实现主要是由社区贡献的,所有资源都可以从GitHub存储库中获得。 注意:我们使用“框架”一词来泛指平台,微框架和全栈框架。...我们(现在为该项目的所有贡献者发言)一直在定期更新测试实现,扩大覆盖范围并在半定期更新(我们称为“回合”)中获取结果。...单个数据库查询:行使框架的对象关系映射器(ORM),随机数生成器,数据库驱动程序和数据库连接池。 多个数据库查询:测试#2的一种变体,也使用World表。...提取多行以更加显着地惩罚数据库驱动程序和连接池。在测试的最高每次查询查询数(20)下,该测试表明随着数据库活动的增加,所有框架都趋向于每秒零请求。

    81240

    Portworx演示:在K8S集群间迁移有状态的应用和数据

    由于Kubernetes比较新,因此IT团队都在学习如何在生产环境中,在Kubernetes上对应用程序进行运行和维护。...除了在集群之间进行整个Kubernetes命名空间的转移之外,我们还将展示如何将配置在集群1中使用本地存储的应用程序,迁移到使用网络附加的块存储的集群2中。...“我们并不能向现有的节点池添加本地SSD。” Portworx能够克服对上述部分限制,因为它能够将数据复制到集群中的其他提供高可用的主机上。...它是由单个命名空间(NameSpace)内运行的大量应用构成的:Cassandra, Postgres,WordPress和MySQL。所有的这些应用程序都会在集群中产生非常高的负载。...所有的程序都在运行中! 现在我们返回PX-CentralGrafana仪表板就可以看到集群上使用的内存和CPU都变少了。该截屏显示的是工作负载迁移后的工作节点的CPU和内存使用情况。

    2.5K01

    Citus 11 官方手册脑图 - PostgreSQL 超大规模分布式数据库解决方案上手指南

    Ruby on Rails Django ASP.NET Java Hibernate 其他(SQL原则) 启用安全连接 检查跨节点流量 迁移生产数据 小型数据库迁移 大数据库迁移 复制 schema...Postgres 上使用 HyperLogLog 的分布式不同计数 HLL 在幕后做什么? 哈希所有的元素 观察数据中的罕见模式 随机平均 更多?...分布式系统中的HLL 亲身体验 HLL 设置 例子 结论 Citus 中的 Postgres 并行索引 使用 Postgres 和 Citus 进行大规模实时事件聚合 PostgreSQL 和 Citus...上的分布式外连接如何工作 Citus 的分布式外连接 使用 Postgres 设计 SaaS 数据库以实现扩展 使用 Citus 扩展构建可扩展的 Postgres 指标后端 时间序列指标 事件 使用...Postgres 对多租户应用进行分片 租约 多租户和托管,完美的一对 综上所述 使用半结构化数据对 Postgres 进行分片及其对性能的影响 一张大表,没有连接 进入 Citus 查询工作负载 每个发行版都有它的刺

    4.4K30

    Zendesk与微服务维护的艺术

    行业:软件 地点:美国 云类型:公有 挑战:速度 产品类型:安装程序 使用的CNCF项目:Kubernetes 挑战 Zendesk 是用 MySQL 数据库建立的单体 Rails 应用程序,在公司自有硬件上的共址数据中心中运行...影响 如今,Zendesk 大约70%的应用程序都是在 Kubernetes 上运行的,所有的新应用都会在 Kubernetes 上运行。...所有的产品和服务都在单体 Rails 应用上提供,该应用程序利用 MySQL 数据库,在公司自有硬件上的共址数据中心中运行。 最初的7年中,系统运行良好。...如今,Zendesk 大约70%的应用程序都是在 Kubernetes 上运行的,所有的新应用都会在 Kubernetes 上运行。...“现在 Samson 直接连接到各个 Kubernetes 集群,读取你们 GitHub repo 里的YAML文件,然后做一点转化,” Moter 说。

    1.1K10

    Citus 11 for Postgres 完全开源,可从任何节点查询(Citus 官方博客)

    这样,当通过将现有数据移动到新节点来扩展集群时,您的应用程序只会遇到短暂的写入延迟。一个先决条件是所有 Postgres 表都有主键。...博客文章描述了如何查看所有节点的活动,以及如何使用全局进程标识符 (GPID) 将内部查询与分布式查询相关联。这篇文章还介绍了如何在 Citus 节点之间对来自应用程序的连接进行负载均衡。...citus_finish_citus_upgrade 函数将确保所有节点都有元数据,这样您现有的集群的行为就与全新的 Citus 11 集群相同。...如果您以前使用过 Citus,您可能偶尔会连接到您的工作节点以查看将数据存储在分布式表和引用表中的分片。...例如,pg_dump 将尝试转储分片和分布式表。因此,我们从目录查询中隐藏了分片,但它们仍然存在,如果需要,您可以直接查询它们。

    1K20

    数据库是如何分片的?

    这篇文章将介绍数据库分片的工作原理、思考如何给你自己的数据库分片,以及其他一些有用的、可以提供帮助的工具,尤其是针对 MySQL 和 Postgres。...在我们的亚马逊示例中,这可能是因为一家大型企业开始订购一吨的东西,并且他们的所有数据都在一台服务器上。管理这些热点、重新分配数据和负载以及重新组织分区策略以防止将来出现问题是你在分片时注册的一部分。...对于那些从头开始构建分片的人来说,最常见的答案是在应用程序层。你需要在应用程序代码中构建逻辑,以决定特定查询连接到哪个数据库(和模式),以该查询内的数据及其在分片方案中的位置为条件。...更常见的是,团队将使用某种数据库中的键值存储或查找表。重要的是让将一段数据与其目的地相关联的信息编码在某处,以便应用程序知道去哪查询。...它基本上是在 MySQL 之上的一个层,提供分片和许多其他与大型工作负载相关的有用工具:连接池,动态重新分片和负载均衡,以及监视工具等等。

    38930

    如何在Ubuntu 14.04上使用Unicorn和Nginx部署Rails应用程序

    本教程将帮助您部署Ruby 在 Rails应用程序中的生产环境,使用PostgreSQL作为数据库,在Ubuntu 14.04上使用Unicorn和Nginx。...如果没有,第一步是创建一个使用PostgreSQL作为其数据库的新Rails应用程序。 此命令将创建一个名为“appname”的新Rails应用程序,该应用程序将使用PostgreSQL作为数据库。...使用以下命令退出PostgreSQL控制台: \q 现在,我们已准备好使用正确的数据库连接信息配置您的应用程序。 配置数据库连接 确保您位于应用程序的根目录(cd ~/appname)中。...将生产密码和机密保存在应用程序代码库之外被认为是最佳实践,因为如果您使用的是分布式版本控制系统(如Git)时,它们会很容易被暴露出来。接下来我们将讨论如何使用环境变量设置数据库身份验证。...管理环境变量的一种简单方法是使用rbenv-vars插件,我们可以使用它来在运行时将密码和机密加载到我们的应用程序中。

    4.3K00
    领券