Volver a la página principal
jueves 25 julio 2024
26

Cómo utilizar sqlite en ruby

Instalación de SQLite3 y Configuración del Entorno

Antes de empezar, asegúrate de tener Ruby y SQLite3 instalados en tu sistema. Puedes instalar SQLite3 siguiendo las instrucciones en su sitio oficial. Para instalar la gema sqlite3, ejecuta:

gem install sqlite3

Creando una Base de Datos SQLite

Primero, necesitas crear una base de datos SQLite. Esto se puede hacer directamente desde Ruby:

require 'sqlite3'

# Crear una nueva base de datos llamada 'mi_base_de_datos.db'
db = SQLite3::Database.new "mi_base_de_datos.db"

Creando Tablas

Con la base de datos creada, el siguiente paso es definir su estructura creando tablas. Aquí hay un ejemplo de cómo crear una tabla llamada usuarios:

# Crear una tabla llamada 'usuarios'
rows = db.execute <<-SQL
  CREATE TABLE usuarios (
    id INTEGER PRIMARY KEY,
    nombre VARCHAR(50),
    edad INT
  );
SQL

Insertando Datos

Una vez que la tabla está creada, puedes insertar datos en ella. Aquí hay un ejemplo de cómo insertar un registro en la tabla usuarios:

db.execute "INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ["Juan", 25]
db.execute "INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ["María", 30]

Consultando Datos

Para recuperar datos de la base de datos, usa el método execute con una consulta SQL. Aquí tienes un ejemplo:

db.execute( "SELECT * FROM usuarios" ) do |fila|
  puts fila
end

Este código imprimirá todas las filas de la tabla usuarios.

Actualizando Datos

Para actualizar registros existentes, utiliza la sentencia UPDATE:

db.execute "UPDATE usuarios SET edad = ? WHERE nombre = ?", [26, "Juan"]

Eliminando Datos

Para eliminar registros, usa la sentencia DELETE:

db.execute "DELETE FROM usuarios WHERE nombre = ?", ["María"]

Manejo de Errores

Es importante manejar posibles errores al interactuar con la base de datos. Aquí tienes un ejemplo de cómo capturar errores:

begin
  db.execute "INSERT INTO usuarios (nombre, edad) VALUES (?, ?)", ["Pedro", "veinticinco"]
rescue SQLite3::Exception => e
  puts "Se produjo un error: #{e}"
end

En este caso, un error se producirá porque la edad no es un número entero.

Utilizando ActiveRecord con SQLite

Para proyectos más complejos, considera usar ActiveRecord, un ORM (Object-Relational Mapping) que simplifica la interacción con la base de datos. Primero, añade la gema activerecord y sqlite3 a tu Gemfile:

gem 'activerecord'
gem 'sqlite3'

Luego, ejecuta bundle install.

Aquí tienes un ejemplo de cómo configurar ActiveRecord con SQLite:

require 'active_record'

# Configurar la conexión a la base de datos
ActiveRecord::Base.establish_connection(
  adapter: 'sqlite3',
  database: 'mi_base_de_datos.db'
)

# Definir un modelo ActiveRecord para la tabla 'usuarios'
class Usuario < ActiveRecord::Base
end

# Crear la tabla usando ActiveRecord
unless ActiveRecord::Base.connection.table_exists?(:usuarios)
  ActiveRecord::Schema.define do
    create_table :usuarios do |t|
      t.string :nombre
      t.integer :edad
    end
  end
end

# Insertar un nuevo usuario
Usuario.create(nombre: 'Ana', edad: 22)

# Consultar todos los usuarios
Usuario.all.each do |usuario|
  puts usuario.nombre
end

Conclusión

SQLite es una excelente opción para bases de datos ligeras y es fácil de usar con Ruby. Ya sea que prefieras las consultas SQL directas o un enfoque ORM con ActiveRecord, tienes las herramientas necesarias para gestionar bases de datos de manera eficiente. ¡Empieza a experimentar y construye tus aplicaciones con confianza!

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer