OceanBase
English日本語简体中文
ドキュメントホーム
製品
エコシステム
リリース

データベース

OceanBase CloudOceanBaseデータベース

データベース

OceanBase CloudOceanBaseデータベース
OceanBase CloudOceanBaseデータベース

OceanBaseデータベース

  • エコシステム統合の概要
  • ORMフレームワーク
    • Java
      • SpringBootサンプルプログラム
      • SpringBatchサンプルプログラム
      • Spring JDBCサンプルプログラム
      • SpringDataJPAサンプルプログラム
      • Hibernateサンプルプログラム
      • MyBatisサンプルプログラム
    • Python
      • SQLAlchemyによるOceanBaseデータベース接続サンプルプログラム
      • peeweeによるOceanBaseデータベース接続サンプルプログラム
      • Tortoise ORM による OceanBase データベース接続サンプルプログラム
    • Go
      • GORMサンプルプログラム
    • Rust
      • SeaORM による OceanBase データベース接続サンプルプログラム
    • Ruby
      • ActiveRecordによるOceanBaseデータベース接続サンプルプログラム
      • Sequel で OceanBase データベースに接続するサンプルプログラム
      • Ruby on RailsによるOceanBaseデータベース接続サンプルプログラム
    • Node.js
      • SequelizeでOceanBaseデータベースに接続する
      • TypeORMを使用してOceanBaseデータベースに接続する
      • Prismaを使用してOceanBaseデータベースに接続する
      • Drizzle ORMを使用してOceanBaseデータベースに接続する
    • C#
      • Dapperを使用してOceanBaseデータベースに接続する
      • SqlSugarを使用してOceanBaseデータベースに接続する
      • FreeSQLを使用してOceanBaseデータベースに接続する
    • PHP
      • Yii 2.0 ORMサンプルプログラム
      • Laravel Eloquent ORMサンプルプログラム
  • データベースのバージョン管理
    • Liquibaseを使用したOceanBaseデータベースのバージョンの管理
    • Flywayを使用してOceanBaseデータベースを統合し、バージョン管理を実現する
  • データ統合
    • dbtを使用したOceanBaseデータの分析
    • Flink DirectLoadを使用したOceanBaseのダイレクトインポート
    • SeaTunnelを使用したOceanBaseデータの読み取りと同期
    • Maxwellを使用したOceanBaseデータの読み取り
    • Debeziumを使用してOceanBaseに接続し、データを取得する
    • Spark Catalogを使用してOceanBaseデータベースに接続する
    • Apache NiFiを使用してOceanBaseデータベースと統合する
  • SQL開発
    • WebLogicを使用してOceanBaseデータベースに接続する
    • DBeaverを使用してOceanBaseデータベースに接続する
    • Navicatを使用してOceanBaseデータベースに接続する
    • DataGripでOceanBaseデータベースに接続する
    • TablePlusでOceanBaseデータベースに接続する
    • DMSを使用したOceanBaseデータベースの管理
  • 編成とスケジューリング
    • AirflowとOceanBaseデータベースの連携
    • PowerJobとOceanBaseデータベースの連携
    • DolphinSchedulerにOceanBaseデータソースを設定する
    • LinkisとOceanBaseデータベースの統合
  • 可視化ツール
    • SupersetとOceanBaseを使用したデータ分析
    • Power BIでOceanBaseに接続してデータを取得する
    • Quick BIでOceanBaseに接続してデータを取得する
    • Bytebaseを使用したOceanBaseインスタンスの管理
  • データベース管理
    • NineDataを使用したOceanBaseデータソースの管理
    • Bytebaseを使用したOceanBaseインスタンスの管理
  • AI
    • OpenAI
    • Qwen
    • OceanBaseデータベースとLangChainの統合
    • OceanBaseデータベースのベクトル検索機能とLlamaIndexの連携
    • OceanBaseデータベースのベクトル検索機能とDifyの連携
    • OceanBaseデータベースとn8nの連携
    • OceanBase MCP ServerとTraeの連携
    • OceanBaseデータベースとSpring AI Alibabaの連携
    • OceanBase MCP ServerとClineの連携
    • OceanBase MCP ServerとCursorの連携
    • OceanBase MCP ServerとContinueの連携
    • Google GenAI Toolboxを使用して独自のOceanBase MCP Serverを構築する
    • OceanBaseデータベースとCamelAIの連携
    • OceanBase VectorとFirecrawlの連携
    • OceanBase VectorとHugging Faceの連携
    • OceanBase VectorとOllamaの連携
    • OceanBaseデータベースとGoogle Geminiの連携
    • OceanBase VectorとCloudflare Workers AIの連携
    • OceanBase VectorとJina AIの連携
    • OceanBase MCP ServerとAugment Codeの連携
    • OceanBase MCP ServerとClaude Codeの連携
    • OceanBase MCP ServerとKiroの連携

PDF をダウンロード

ドキュメントフィードバック
  1. ドキュメントセンター
  2. OceanBaseデータベース
  3. master

Ruby on RailsによるOceanBaseデータベース接続サンプルプログラム

最終更新:2026-10-10 03:12:37

前提条件
手順
ステップ1:OceanBaseデータベースの接続文字列を取得する
ステップ2:RubyとRailsをインストールする
ステップ3:モデルを作成し、CRUD操作を実装する
ステップ4:APIをテストする
関連ドキュメント

機能の適用範囲

Ruby on RailsはOceanBaseデータベースのMySQLモードで動作します。

Ruby on Railsは、Ruby言語で開発されたフルスタックのWebアプリケーションフレームワークであり、ORMコンポーネントとしてActiveRecordを組み込んでいます。ActiveRecordは以下の特徴を提供します:

  • 標準に基づくオブジェクト関係マッピング(ORM)
  • モデルの関連付けと継承をサポート
  • クエリインターフェースを提供し、複雑なデータベースクエリを構築
  • データベースマイグレーションをサポート
  • 検証とコールバックメカニズムを内蔵

本記事では、Ruby on RailsのActiveRecordを使用してOceanBaseデータベースに接続し、テーブルの作成、データの挿入、更新、クエリなどの基本的なデータベース操作を実現する方法を紹介します。

前提条件

  • Ruby 3.2.1以降のバージョンがインストール済みであること。
  • Rails 6.0以降のバージョンがインストール済みであること。
  • OceanBaseデータベースがインストール済みで、MySQLモードのテナントが作成されていること。
  • OceanBaseデータベースの接続文字列を取得済みであること。

手順

  1. OceanBaseデータベースの接続文字列を取得します。
  2. RubyとRailsをインストールします。
  3. Railsアプリケーションを作成し、データベース接続を設定します。
  4. モデルを作成し、基本的なCRUD操作を実装します。
  5. プログラムを実行し、結果を検証します。

ステップ1:OceanBaseデータベースの接続文字列を取得する

OceanBaseデータベースのデプロイ担当者または管理者から、該当するデータベース接続文字列を取得します。

obclient -h$host -P$port -u$user_name -p$password -D$database_name

パラメータ説明:

  • $host:OceanBaseデータベースへの接続IPアドレス。OceanBaseデータベースプロキシ(OceanBase Database Proxy、ODP)接続方式ではODPアドレスを使用し、直接接続方式ではOBServerノードのIPアドレスを使用します。

  • $port:OceanBaseデータベースへの接続ポート。ODP接続方式のデフォルトポートは2883で、ODPデプロイ時にカスタマイズ可能です。直接接続方式のデフォルトポートは2881で、OceanBaseデータベースのデプロイ時にカスタマイズ可能です。

  • $database_name:アクセス対象のデータベース名。

    注意

    テナントに接続するユーザーには、データベースに対する CREATE、INSERT、UPDATE、および SELECT 権限が付与されていなければなりません。その他のユーザー権限の詳細については、MySQLモードの権限分類を参照してください。

  • $user_name:テナントの接続アカウント。ODP接続の一般的な形式:ユーザー名@テナント名#クラスタ名 または クラスタ名:テナント名:ユーザー名。直接接続方式の形式:ユーザー名@テナント名。

  • $password:アカウントのパスワードを指定します。

接続文字列の詳細については、OBClientを使用してOceanBaseテナントに接続するを参照してください。

例:

obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest

ステップ2:RubyとRailsをインストールする

  1. RubyとRailsをインストールします:

    # 依存関係のインストール
    apt install -y curl vim git build-essential libmysqlclient-dev libssl-dev
    
    # RVMのインストール
    curl -L https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable
    
    # RVM環境のロード
    source /usr/local/rvm/src/rvm/scripts/rvm
    
    # RVMがRubyをダウンロードするリポジトリをRuby Chinaのミラーに変更
    echo "ruby_url=https://cache.ruby-china.com/pub/ruby" > /usr/local/rvm/src/rvm/config/db
    
    # RVMの依存関係のインストール
    rvm requirements
    
    # 必要なディレクトリの作成
    mkdir -p /usr/local/rvm/src/rvm/rubies
    mkdir -p /usr/local/rvm/src/rvm/archives
    mkdir -p /usr/local/rvm/src/rvm/src/ruby-3.2.1
    
    # Ruby 3.2.1のインストール
    rvm install 3.2.1
    rvm use 3.2.1 --default
    
    # BundlerとRailsのインストール
    gem install bundler
    gem install rails
    
    # インストールの確認
    rails -v
    
    # MySQL2のインストール
    gem install mysql2 -v '0.5.6'
    
  2. 新しいRailsアプリケーションを作成します:

    # 新しいRailsアプリケーションを作成し、テストフレームワークをスキップする
    rails new oceanbase_rails --skip-test
    cd oceanbase_rails
    
  3. Gemfileファイルを修正し、tzinfo-dataが含まれていることを確認します:

    gem 'tzinfo-data', platforms: [:ruby]
    
  4. 依存関係をインストールします:

    bundle install
    

ステップ3:モデルを作成し、CRUD操作を実装する

  1. ユーザーモデル app/models/user.rb を作成します:

    class User < ApplicationRecord
      validates :username, presence: true
      validates :email, presence: true, uniqueness: true
      validates :age, numericality: { only_integer: true, allow_nil: true }
    end
    
  2. コントローラー app/controllers/users_controller.rb を作成し、CRUD操作を実装します:

    class UsersController < ApplicationController
      # すべてのユーザーを取得する
      def index
        @users = User.all
        render json: @users
      end
    
    # 一時的にCSRF検証を無効にする
    skip_before_action :verify_authenticity_token, if: :json_request?
    
      # 新規ユーザーを作成する
      def create
        @user = User.new(user_params)
        if @user.save
          render json: @user, status: :created
        else
          render json: @user.errors, status: :unprocessable_entity
        end
      end
    
      # 単一ユーザーを取得する
      def show
        @user = User.find(params[:id])
        render json: @user
      rescue ActiveRecord::RecordNotFound
        render json: { error: 'User not found' }, status: :not_found
      end
    
      # ユーザー情報の更新
      def update
        @user = User.find(params[:id])
        if @user.update(user_params)
          render json: @user
        else
          render json: @user.errors, status: :unprocessable_entity
        end
      end
    
      def json_request?
      request.format.json?
      end
    
      private
    
      def user_params
        params.require(:user).permit(:username, :email, :age)
      end
    end
    
  3. ルートを設定し、config/routes.rb を編集します:

    Rails.application.routes.draw do
      resources :users
    end
    

ステップ4:APIをテストする

  1. Railsサーバーを起動します:

    rails server -p 3000
    
  2. curlまたはPostmanを使用してAPIをテストします:

    curl -X POST http://localhost:3000/users 
    
    -H "Content-Type: application/json"
    
    -H "Accept: application/json"
    
    -d '{"user": {"username":"testuser","email":"test@example.com","age":25}}'
    
    curl -X PATCH http://localhost:3000/users/1 \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"user": {"age":26}}'
    
    curl -X DELETE http://localhost:3000/users/1 
    
    -H "Content-Type: application/json"
    
    -H "Accept: application/json"
    

関連ドキュメント

  • Railsガイド - Active Recordの基礎
  • Rails APIドキュメント
  • Ruby on Rails入門ガイド
  • OceanBaseデータベースドキュメント
  • Ruby公式ドキュメント

前のトピック

Sequel で OceanBase データベースに接続するサンプルプログラム
前へ

次のトピック

SequelizeでOceanBaseデータベースに接続する
次へ
このページの内容
前提条件
手順
ステップ1:OceanBaseデータベースの接続文字列を取得する
ステップ2:RubyとRailsをインストールする
ステップ3:モデルを作成し、CRUD操作を実装する
ステップ4:APIをテストする
関連ドキュメント