与尤加比的部署铁轨
#database #rails

最近,我已经与Franck Pachot讨论了有关数据库的问题。他告诉我有关yugabytedb的信息以及分布式SQL的优势。

本文将展示如何在本地部署yugabyte数据库。然后将Rails应用程序连接到它。

让我们看看这有多顺利!

让我们本地部署

文档已很好地解释了本地部署您的yugabyte数据库。

我创建了一个docker-compose.yml,以避免一遍又一遍地重新命令。

services: 
  yuga:
    image: "yugabytedb/yugabyte:2.17.3.0-b152"
    ports: 
      - "7001:7000"
      - "9042:9042"
      - "5433:5433"
      - "9000:9000"
    command: "bin/yugabyted start --daemon=false" 

你去。现在您可以尝试连接到数据库:
在文档中,他们说您可以使用此命令连接到yugabytedb:
通过运行

docker exec -it yugabyte-yuga-1 /home/yugabyte/bin/ysqlsh --echo-queries

,但事实证明我得到了这个错误:

ysqlsh: could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5433?
could not connect to server: Cannot assign requested address
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5433?

研究了解决方案后,我从弗兰克·帕科特(Frank Pachot)找到了this solution

docker exec -it yugabyte-yuga-1 bash -c 'ysqlsh --echo-queries 
-h $(hostname) -p 5433'

让我们与Rails应用程序联系

要测试此Yugabyte数据库,我想创建一个Rails应用程序。

rails new yugapp -d postgres 

yugabyte是一个兼容的兼容数据库。将适配器用于Postgres与我们的Rails应用程序应该有效。这就是为什么我放置-d postgres选项。

现在我们需要对数据库进行一些调整。
确实,正如我们在上面看到的,与Postgres不同,Yugabyte不接受5432港口的连接,而是在5433上接受连接。
我已经设法通过配置在本地连接到数据库:

default: &default
  adapter: postgresql
  encoding: unicode
  host: localhost           -
  port: 5432                 |__________ added by myself
  username: "postgres"       | 
  password: ""              -

运行数据库耙任务以创建,迁移和播种您的数据库。

rails db:create db:migrate db:seed

评论

与postgres相比,横rake任务的耙子任务要慢。
但这是正常的。实际上,分布式发动机需要确保一切都同步。因此,写作操作必然会较慢。

就是这样。现在您可以运行服务器,并且可以很好地工作。

结论

部署Yugabyte数据库的轨道应用程序很简单。
肯定会有更多的Yugabyte。这是一项非常酷的技术,分布式SQL是一个热情的主题。
我希望很快能写有关木筏算法的文章!