This topic describes how to build an application by using ActiveRecord and OceanBase Database. It also covers the use of the application for fundamental database operations, including table creation, data insertion, and data query.
Prerequisites
- You have installed Ruby and RubyGems.
- You have installed OceanBase Database and created a MySQL-compatible tenant.
Procedure
- Check the versions of Ruby and RubyGems.
- Install the required gems.
- Obtain the OceanBase Database connection information.
- Create and configure a Rails application.
- Run the sample program.
Step 1: Check the versions of Ruby and RubyGems
Open the terminal and run the following commands to check the versions of Ruby and RubyGems:
ruby -v
gem -v
Step 2: Install the required gems
Install system dependencies (using Ubuntu 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 # List available versions rbenv install x.x.x # Install a specific version rbenv global x.x.x # Set the global versionInstall ActiveRecord and mysql2 by using
gem:gem install activerecord mysql2
Step 3: Obtain the OceanBase Database connection information
Contact the deployment personnel or administrator of OceanBase Database to obtain the connection string.
mysql -h$host -P$port -u$user_name -p$password -D$database_name
The parameters are described as follows:
$host: the IP address for connecting to OceanBase Database.$port: the port for connecting to OceanBase Database.$database_name: the name of the database to be accessed.$user_name: the account for connecting to the tenant.$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 an example model:
# app/models/user.rb class User < ActiveRecord::Base validates :name, presence: true end
Step 5: Run the sample program
Create the 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 errors: If you cannot connect to the database, check:
- Whether the database address and port are correct
- Whether the username and password are correct
- Whether the network connection is normal
Privilege errors: If you encounter privilege-related errors, ensure that the user has sufficient privileges to perform the required operations.
SQL syntax errors: If the SQL statement has syntax errors, check whether the SQL syntax is correct.
Performance optimization recommendations
- Use ActiveRecord batch operations (such as
insert_all). - Use preload to avoid N+1 query issues.
- Use caching appropriately.
- Optimize database indexes.