Conexión y Ping
En esta página
Toda interacción con la base de datos comienza con Database.open(url), que
devuelve un Result<Database, DbError>. Usa .unwrap() para obtener el handle
(y fallar de forma explícita ante un error), o match / ? para gestionar el
error con elegancia. En caso de fallo, el DbError lleva un kind
(DbErrorKind::ConnectionFailed, …::QueryFailed, …), un message y el nombre
del driver.
defer db.close() garantiza que la conexión se libere al final del ámbito,
independientemente de errores.
Abre SQLite en memoria, llama a db.ping() para confirmar que la conexión está
activa e imprime el driver reconocido.
// Feature: Database — open a connection and ping
// Syntax: `Database.open("sqlite://:memory:").unwrap()` returns a handle.
// When to use: smoke test before using the connection; CI healthcheck.
use std::database::Database
let db = Database.open("sqlite://:memory:").unwrap()
defer db.close()
let ok = db.ping().unwrap()
print("ping: {ok}")
// expected: ping: true
print("driver: {db}")
// expected: driver: Database(sqlite)
Requiere la CLI o el host de Zolo; ábrelo en el playground o ejecútalo localmente.
Para Postgres o MySQL basta cambiar la URL:
Database.open("postgres://usuario:contraseña@host/base")
Database.open("mysql://usuario:contraseña@host/base")
Desafío
Intenta pasar una URL inválida (p. ej. "nope://invalid") y trátala con match,
imprimiendo e.kind y e.message. ¿Qué DbErrorKind obtienes?
Consulta también