Skip to content

Commit

Permalink
feat: add Ruby activerecord sample (#64)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhs722 authored May 30, 2024
1 parent 6d39935 commit 243e0fa
Show file tree
Hide file tree
Showing 5 changed files with 156 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ jobs:
- name: 'sequel'
language: 'ruby'
with_oceanbase_container: true
- name: 'activerecord'
language: 'ruby'
with_oceanbase_container: true
uses: ./.github/workflows/basic-workflow.yml
with:
module: ${{ matrix.module.name }}
Expand Down
61 changes: 61 additions & 0 deletions ruby/activerecord/README-CN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Ruby连接 OceanBase 指南(activerecord)

[English](README.md) | 简体中文

本文介绍如何通过activerecord连接 OceanBase 数据库。

## 快速开始

在开始之前,需要先确保 mysql2,activerecord已安装。

安装命令

```
gem install activerecord
gem install mysql2
```

[example.rb](example.rb) 为例。

```
require 'active_record'
# 数据库配置
db_config = {
adapter: 'mysql2',
host: '127.0.0.1',
port: 2881,
username: 'root',
password: '',
database: 'test'
}
begin
# 建立连接
ActiveRecord::Base.establish_connection(db_config)
# 测试连接是否成功
connection = ActiveRecord::Base.connection
result = connection.active? # 检查数据库连接是否有效
if result
puts "成功连接到OceanBase数据库"
else
puts "连接到OceanBase数据库失败"
end
rescue StandardError => e
puts "连接到OceanBase数据库时发生错误: #{e.message}"
ensure
ActiveRecord::Base.connection.close if ActiveRecord::Base.connected?
end
```

修改代码中的连接信息,之后你就可以直接使用命令行运行示例代码。

```bash
sh run.sh
```

ActiveRecord::Base.connection.close if ActiveRecord::Base.connected?
end
58 changes: 58 additions & 0 deletions ruby/activerecord/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Ruby Connection OceanBase Guide (activerecord)

English | [简体中文](README-CN.md)

This article introduces how to connect to OceanBase database through activerecord.

## Quick Start

Before starting, it is necessary to ensure that mysql2,activerecord is installed.

Installation command

```
gem install activerecord
gem install mysql2
```

Taking [example.rb](example.rb) as an example.

```
require 'active_record'
# 数据库配置
db_config = {
adapter: 'mysql2',
host: '127.0.0.1',
port: 2881,
username: 'root',
password: '',
database: 'test'
}
begin
# 建立连接
ActiveRecord::Base.establish_connection(db_config)
# 测试连接是否成功
connection = ActiveRecord::Base.connection
result = connection.active? # 检查数据库连接是否有效
if result
puts "成功连接到OceanBase数据库"
else
puts "连接到OceanBase数据库失败"
end
rescue StandardError => e
puts "连接到OceanBase数据库时发生错误: #{e.message}"
ensure
ActiveRecord::Base.connection.close if ActiveRecord::Base.connected?
end
```

Modify the connection information in the code, and then you can directly run the example code using the command line.

```bash
sh run.sh
```
31 changes: 31 additions & 0 deletions ruby/activerecord/example.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
require 'active_record'

# 数据库配置
db_config = {
adapter: 'mysql2',
host: '127.0.0.1',
port: 2881,
username: 'root',
password: '',
database: 'test'
}

begin
# 建立连接
ActiveRecord::Base.establish_connection(db_config)

# 测试连接是否成功
connection = ActiveRecord::Base.connection
result = connection.active? # 检查数据库连接是否有效

if result
puts "成功连接到OceanBase数据库"
else
puts "连接到OceanBase数据库失败"
end

rescue StandardError => e
puts "连接到OceanBase数据库时发生错误: #{e.message}"
ensure
ActiveRecord::Base.connection.close if ActiveRecord::Base.connected?
end
3 changes: 3 additions & 0 deletions ruby/activerecord/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
gem install activerecord
gem install mysql2
ruby example.rb

0 comments on commit 243e0fa

Please sign in to comment.