This topic describes how to use ActiveRecord and OceanBase Cloud to build an application that can perform basic operations such as creating tables, inserting data, and querying data.
Prerequisites
- You have installed Ruby and RubyGems.
- You have registered an OceanBase Cloud account and created an instance and a MySQL compatible tenant. For more information, see Create an instance and Create a tenant.
Procedure
- Check the versions of Ruby and RubyGems.
- Install the required gem.
- Obtain the connection information of OceanBase Cloud.
- Create and configure a Rails application.
- Run the sample application.
Step 1: Check the versions of Ruby and RubyGems
Open the terminal and run the following command to check the versions of Ruby and RubyGems:
ruby -v
gem -v
Step 2: Install the required gem
Install the system dependencies (Ubuntu is used as an example):
sudo apt-get install ruby-dev mysql-client libmysqlclient-devIf you use RVM (Ruby Version Manager):
rvm requirementsIf you use rbenv:
rbenv install -l # View available versions rbenv install x.x.x # Install a specific version rbenv global x.x.x # Set the global versionUse
gemto install ActiveRecord and mysql2:gem install activerecord mysql2
Step 3: Obtain the connection information of OceanBase Cloud
Log in to the OceanBase Cloud console. On the instance list page, expand the information of the target instance, and in the target tenant, choose Connect > Get Connection String.
For more information, see Get the connection string.
Fill in the URL with the information of the created OceanBase Cloud database.
mysql -h$host -P$port -u$user_name -p$password -D$database_nameParameter description:
$host: the connection address of the OceanBase Cloud database, for example,t********.********.oceanbase.cloud.$port: the connection port of the OceanBase Cloud database. The default value is 3306.$database_name: the name of the database to be accessed.$user_name: the account for accessing the database.$password: the password of the account.
Step 4: Create and configure a Rails application
Create a new Rails application:
rails new activerecord_oceanbase -d mysqlConfigure the database connection information:
Add the following configuration to
config/database.yml:development: adapter: mysql2 encoding: utf8mb4 database: your_database username: your_username password: your_password host: your_host port: your_portCreate a sample model:
# app/models/user.rb class User < ActiveRecord::Base validates :name, presence: true end
Step 5: Run the sample application
Create a database table:
# 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 endRun the migration:
rails db:migrateTest in the Rails console:
rails c# Create a record user = User.create(name: "John Doe")# Query records users = User.all
Common issues
Connection error: If you cannot connect to the database, check the following:
- Whether the database address and port are correct
- Whether the username and password are correct
- Whether the network connection is normal
Permission error: If you encounter permission-related errors, make sure the user has sufficient permissions to perform the required operations.
SQL syntax error: If there is a syntax error in the SQL statement, check whether the syntax of the SQL statement is correct.
Performance optimization recommendations
- Use ActiveRecord's batch operation methods (such as
insert_all) - Use eager loading (preload) to avoid N+1 query issues
- Use caching reasonably
- Optimize database indexes