本ドキュメントでは、ActiveRecordとOceanBase Cloudを使用してアプリケーションを構築し、テーブルの作成、データの挿入、データのクエリなどの基本操作を実行する方法について説明します。
前提条件
- RubyおよびRubyGemsがインストールされていること
- OceanBase Cloudのアカウントを登録し、クラスタインスタンスとMySQL互換モードのテナントを作成していること。詳細は、クラスタインスタンスの作成およびテナントの作成をご参照ください。
操作手順
- RubyおよびRubyGemsのバージョンの確認
- 必要なgemのインストール
- OceanBase Cloudの接続情報の取得
- Railsアプリケーションの作成と設定
- サンプルプログラムの実行
操作手順1:RubyおよびRubyGemsのバージョンの確認
ターミナルを開き、以下のコマンドを実行してRubyおよびRubyGemsのバージョンを確認します。
ruby -v
gem -v
操作手順2:必要なgemのインストール
システム依存関係のインストール(Ubuntuの例):
sudo apt-get install ruby-dev mysql-client libmysqlclient-devRVM(Ruby Version Manager)を使用する場合:
rvm requirementsrbenvを使用する場合:
rbenv install -l # 利用可能なバージョンを確認 rbenv install x.x.x # 指定したバージョンをインストール rbenv global x.x.x # グローバルバージョンを設定 ```
gemを使用してActiveRecordとmysql2をインストールします。gem install activerecord mysql2
操作手順3:OceanBase Cloudの接続情報の取得
OceanBase Cloudコンソールにログインします。インスタンス一覧ページで対象インスタンスの情報を展開し、対象テナントの下で**接続** > **接続文字列を取得**を選択します。
詳細な操作については、接続文字列の取得をご参照ください。
作成済みのOceanBase Cloudに基づいて、以下のURLの対応する情報を入力します。
mysql -h$host -P$port -u$user_name -p$password -D$database_nameパラメータの説明:
$host:OceanBase Cloudの接続アドレスを指定します。例:t********.********.oceanbase.cloud。$port:OceanBase Cloudの接続ポートを指定します。デフォルトは3306です。$database_name:アクセスするデータベース名を指定します。$user_name:データベースにアクセスするアカウントを指定します。$password:アカウントのパスワードを指定します。
操作手順4:Railsアプリケーションの作成と設定
新しいRailsアプリケーションを作成します。
rails new activerecord_oceanbase -d mysqlデータベース接続情報を設定します。
config/database.ymlに以下の設定を追加します。development: adapter: mysql2 encoding: utf8mb4 database: your_database username: your_username password: your_password host: your_host port: your_portサンプルモデルを作成します。
# app/models/user.rb class User < ActiveRecord::Base validates :name, presence: true end
操作手順5:サンプルプログラムの実行
データベーステーブルを作成します。
# db/migrate/20230520_create_users.rb class CreateUsers < ActiveRecord::Migration[6.1] def change create_table :users do |t| t.string :name t.timestamps end end endマイグレーションを実行します。
rails db:migrateRailsコンソールでテストします。
rails c
# レコードを作成
user = User.create(name: "John Doe")
```
```ruby
# レコードを照会
users = User.all
```
## よくある質問
1. **接続エラー**:データベースに接続できない場合は、以下をご確認ください。
* データベースのアドレスとポートが正しいか
* ユーザー名とパスワードが正しいか
* ネットワーク接続が正常か
2. **権限エラー**:権限に関連するエラーが発生した場合は、ユーザーが必要な操作を実行するための十分な権限を持っていることを確認してください。
3. **SQL構文エラー**:SQL文に構文エラーがある場合は、SQL文の構文が正しいか確認してください。
## パフォーマンス最適化の推奨事項
1. ActiveRecordの一括操作メソッド(`insert_all`など)を使用する
2. プリロード(preload)を使用してN+1クエリ問題を回避する
3. キャッシュを適切に使用する
4. データベースインデックスを最適化する