This topic describes how to build an application by using Active Record and OceanBase Database. It also explains how to perform fundamental database operations, including table creation, data insertion, and data querying.
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 necessary gems.
- Obtain the connection information of OceanBase Database.
- Create and configure the Rails application.
- Run the sample application.
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 necessary gems
Install the system dependencies (Ubuntu is used as an example):
sudo apt-get install ruby-dev mysql-client libmysqlclient-devIf you are using Ruby Version Manager (RVM):
rvm requirementsIf you are using 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 Active Record and mysql2:gem install activerecord mysql2
Step 3: Obtain the connection information of OceanBase Database
Contact the deployment personnel or administrator of OceanBase Database to obtain the database connection string.
mysql -h$host -P$port -u$user_name -p$password -D$database_name
Parameter description:
$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 tenant account.$password: the password of the account.
Step 4: Create and configure the 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
FAQ
Connection error: If you cannot connect to the database, check the following items:
- Whether the database address and port are correct.
- Whether the username and password are correct.
- Whether the network connection is normal.
Privilege error: If you encounter a privilege-related error, make sure that the user has sufficient privileges to perform the required operation.
SQL syntax error: If there is a syntax error in the SQL statement, check whether the syntax is correct.
Performance optimization suggestions
- Use batch operation methods of Active Record, such as
insert_all. - Use preloading to avoid N+1 queries.
- Use cache properly.
- Optimize database indexes.