本記事では、SequelとOceanBaseデータベースを使用してアプリケーションを構築し、テーブルの作成、データの挿入、クエリなどの基本操作を実行する方法を紹介します。
前提条件
- RubyとRubyGemsがインストール済みであること。
- OceanBaseデータベースがインストール済みで、MySQLモードのテナントが作成されていること。
操作手順
- RubyとRubyGemsのバージョンを確認する
- 必要なgemをインストールする
- OceanBaseデータベース接続情報を取得する
- サンプルプログラムを作成する
- サンプルプログラムを実行する
ステップ1:RubyとRubyGemsのバージョンを確認する
ターミナルを開き、以下のコマンドを実行してRubyとRubyGemsのバージョンを確認します:
ruby -v
gem -v
ステップ2:必要なgemをインストールする
gem を使用してSequelとmysql2をインストールします:
gem install sequel mysql2
ステップ3:OceanBaseデータベース接続情報を取得する
OceanBaseデータベースのデプロイ担当者または管理者から、該当するデータベース接続文字列を取得します。
mysql -h$host -P$port -u$user_name -p$password -D$database_name
パラメータの説明:
$host:OceanBaseデータベースへの接続IPアドレスを提供する$port:OceanBaseデータベースへの接続ポートを提供する$database_name:アクセスするデータベースの名前$user_name:テナントの接続アカウントを提供する$password:アカウントのパスワードを提供する
ステップ4:サンプルプログラムを作成する
設定ファイル
config.rbを作成します:PASSWORD = ENV['OB_PASSWORD'] || 'your_password' CLIENT_CONFIG = { adapter: 'mysql2', host: 'your_host', port: your_port, username: 'your_username', password: PASSWORD, all_databases: true }サンプルプログラム
main.rbを作成します:require 'sequel' require 'sequel/adapters/mysql2' require File.expand_path('config.rb', __dir__) # 接続の作成 db = Sequel.connect(CLIENT_CONFIG) # データベースの作成 db_name = "ruby_test_db" db.run("CREATE DATABASE IF NOT EXISTS #{db_name}") db.disconnect # 新しいデータベースの再接続 CLIENT_CONFIG[:database] = db_name db = Sequel.connect(CLIENT_CONFIG) puts "Database '#{db_name}' selected" # テーブルの作成 db.run("DROP TABLE IF EXISTS users") db.run("CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP )") # サンプルデータの挿入 sample_names = ["Alice", "Bob", "Charlie", "David"] sample_names.each do |name| db.run("INSERT INTO users (name) VALUES ('#{name}')") end puts "Table created and sample data inserted successfully" puts "Inserted #{sample_names.size} sample records" # すべてのデータのクエリと表示 results = db[:users] puts "\nUsers:" results.each do |row| puts "ID: #{row[:id]}, Name: #{row[:name]}, Created at: #{row[:created_at]}" end # 接続を閉じる db.disconnect
ステップ5:サンプルプログラムを実行する
プログラムの実行:
ruby main.rb期待される実行結果:
Database 'ruby_test_db' selected Table created and sample data inserted successfully Inserted 4 sample records Users: ID: 1, Name: Alice, Created at: 2025-05-21 15:20:06 +0800 ID: 2, Name: Bob, Created at: 2025-05-21 15:20:06 +0800 ID: 3, Name: Charlie, Created at: 2025-05-21 15:20:06 +0800 ID: 4, Name: David, Created at: 2025-05-21 15:20:06 +0800
よくある質問
接続エラー:データベースに接続できない場合は、次のことを確認してください:
- データベースのアドレスとポートが正しいかどうか
- ユーザー名とパスワードが正しいかどうか
- ネットワークが正常に接続されているかどうか
権限エラー:権限に関連するエラーが発生した場合、ユーザーが必要な操作を実行するために十分な権限を持っていることを確認してください。
SQL構文エラー:SQLステートメントに構文エラーがある場合、SQLステートメントの構文が正しいかどうか確認してください。
パフォーマンス最適化の推奨事項
- Sequelのバッチ処理操作を使用する
- 接続プールを使用してデータベース接続を管理する
- プリコンパイル済みクエリを使用する
- キャッシュを適切に使用する
- データベースのインデックスを最適化する