본문 바로가기
WIKI 기술 지식 베이스

Turso 퀵스타트

원문 보기 위키 갱신

Turso 퀵스타트 (ActiveRecord)

몇 가지 간단한 단계로 Turso와 ActiveRecord를 시작하는 방법이에요. 연결부터 CRUD, 마이그레이션, 연관관계까지 한 번에 훑어봐요.

출처: 문서

본문

(기술 프리뷰 배너 스니펫: 이 기능은 기술 프리뷰 단계예요)

이 Ruby 퀵스타트에서 우리는 다음을 배워요:

  • 데이터베이스 자격 증명 가져오기
  • libSQL ActiveRecord 젬 설치
  • 로컬 또는 원격 Turso 데이터베이스에 연결
  • 모델 정의와 생성
  • 기본 CRUD 연산 수행
  • raw SQL 쿼리 실행
  • 마이그레이션 다루기

1. 데이터베이스 자격 증명 가져오기

계속 진행하려면 기존 데이터베이스가 필요해요. 아직 없다면 새로 만들어 보세요.

retrieve-database-credentials.mdx 스니펫을 참고해 자격 증명을 확인하세요.

2. 설치 (Install)

Ruby 프로젝트의 Gemfile에 다음 젬들을 추가해요:

gem 'libsql_activerecord'
gem 'activerecord'

그다음 실행해요:

bundle install

3. 연결 (Connect)

데이터베이스 연결을 세팅하는 Ruby 파일(예: database.rb)을 만들어요:

Embedded Replicas (임베디드 복제본)

require 'libsql_activerecord'
require 'active_record'

ActiveRecord::Base.establish_connection(
  adapter: 'libsql',
  url: ENV['TURSO_DATABASE_URL'],
  auth_token: ENV['TURSO_AUTH_TOKEN'],
  path: 'path/to/local/replica.db'
)

Local only (로컬 전용)

require 'libsql_activerecord'
require 'active_record'

ActiveRecord::Base.establish_connection(
  adapter: 'libsql',
  path: 'path/to/local.db'
)

Remote only (원격 전용)

require 'libsql_activerecord'
require 'active_record'

ActiveRecord::Base.establish_connection(
  adapter: 'libsql',
  url: ENV['TURSO_DATABASE_URL'],
  auth_token: ENV['TURSO_AUTH_TOKEN']
)

In-memory (인메모리)

require 'libsql_activerecord'
require 'active_record'

ActiveRecord::Base.establish_connection(adapter: 'libsql')

4. 모델 정의하기

데이터베이스 테이블마다 모델 파일을 만들어요. 예를 들어 product.rb:

class Product < ActiveRecord::Base
  validates :name, presence: true
end

5. 마이그레이션 생성과 실행

마이그레이션 파일(예: 001_create_products.rb)을 만들어요:

class CreateProducts < ActiveRecord::Migration[8.0]
  def change
    create_table :products do |t|
      t.string :name
      t.text :description
      t.timestamps
    end
  end
end

마이그레이션을 실행해요:

require_relative 'database'
require_relative '001_create_products'

CreateProducts.migrate(:up)

6. 실행 (Execute)

기본 CRUD 연산을 수행해 봐요:

생성(Create):

product = Product.create(name: 'Book', description: 'A book about books')

조회(Read):

all_products = Product.all
first_product = Product.first
found_product = Product.find_by(name: 'Book')

수정(Update):

product.update(description: 'An updated description')

삭제(Delete):

product.destroy

Raw SQL:

results = ActiveRecord::Base.connection.execute("SELECT * FROM products WHERE name LIKE '%Book%'")

results.each do |row|
  puts row.inspect
end

7. 연관관계 다루기 (Work with associations)

모델에 연관관계를 정의해요:

class Author < ActiveRecord::Base
  has_many :books
end

class Book < ActiveRecord::Base
  belongs_to :author
end

코드에서 연관관계를 사용해요:

author = Author.create(name: 'Jane Doe')
book = author.books.create(title: 'My First Book')

puts author.books.count # => 1
puts book.author.name # => "Jane Doe"

더 알아보기 (Learn more)