Crates.io | rusql-alchemy |
lib.rs | rusql-alchemy |
version | |
source | src |
created_at | 2024-06-18 21:53:21.013476 |
updated_at | 2025-02-06 12:43:48.422482 |
description | Rust Alchemy is Django ORM like lib for Rust |
homepage | https://github.com/russenger/rusql-alchemy |
repository | https://github.com/russenger/rusql-alchemy |
max_upload_size | |
id | 1276243 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Just for fun! XD
.env
fileDATABASE_URL=sqlite://<dabasase.db>
Cargo.toml
[dependencies.rusql-alchemy]
git = "https://github.com/j03-dev/rusql-alchemy"
branch= "main"
features = ["sqlite"] # the default features is sqlite
use rusql_alchemy::prelude::*;
#[derive(Debug, Model, FromRow)]
struct User {
#[model(primary_key=true, auto=true)]
id: Integer,
#[model(unique=true)]
name: String,
age: Integer,
#[model(default="user")]
role: String
}
.env
fileDATABASE_URL=postgres://<user>:<password>@<hostname>/<dbname>
Cargo.toml
[dependencies.rusql-alchemy]
git = "https://github.com/j03-dev/rusql-alchemy"
branch="main"
default-features = false
features = ["postgres"]
Serial
typeuse rusql_alchemy::prelude::*;
#[derive(Model, FromRow, Debug, Default)]
struct User_ {
#[model(primary_key=true)]
id: Serial,
#[model(unique=true)]
name: String,
email: Option<String>,
age: Integer,
#[model(default="user")]
role: String,
weight: Float,
}
use anyhow::Result;
use rusql_alchemy::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
let database = Database::new().await?;
database.migrate().await?;
Ok(())
}
use anyhow::Result;
use rusql_alchemy::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
let conn = Database::new().await?.conn;
User_ {
name: "johnDoe".to_string(),
password: "p455w0rd".to_string(),
age: 18,
weight: 60.0,
..Default::default()
}
.save(&conn)
.await;
let users = User_::all(&conn).await;
println!("{:#?}", users);
User_::create(
kwargs!(
name = "joe",
email = "24nomeniavo@gmail.com",
password = "strongpassword",
age = 19,
weight = 80.1
),
&conn,
)
.await;
}
use rusql_alchemy::prelude::*;
#[tokio::main]
async fn main() {
let conn = config::db::Database::new().await.conn;
let users = User_::all(&conn).await;
println!("{:#?}", users);
let user = User_::get(
kwargs!(email == "24nomeniavo@gmail.com").and(kwargs!(password == "strongpassword")),
&conn,
).await;
println!("{:#?}", user);
let users = User_::filter(kwargs!(age <= 18), &conn).await;
println!("{:#?}", users);
}
use rusql_alchemy::prelude::*;
use anyhow::Result;
#[tokio::main]
async fn main() -> Result<()> {
let conn = Database::new().await?.conn;
if let Some(mut user) = User_::get(
kwargs!(email == "24nomeniavo@gmail.com").and(kwargs!(password == "strongpassword")),
&conn,
)
.await
{
user.role = "admin".into();
user.update(&conn).await;
}
}
use rusql_alchemy::prelude::*;
#[tokio::main]
async fn main() {
let conn = Database::new().await.conn;
if let Some(user) = User_::get(kwargs!(role == "admin"), &conn).await {
user.delete(&conn).await; // delete one
}
let users = User_::all(&conn).await;
users.delete(&conn).await; // delete all
}