feat: insert works
This commit is contained in:
16
__database/diesel/Cargo.lock
generated
16
__database/diesel/Cargo.lock
generated
@@ -6,14 +6,6 @@ version = "1.4.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
|
checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "diesel"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"diesel 1.4.5",
|
|
||||||
"dotenv",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "diesel"
|
name = "diesel"
|
||||||
version = "1.4.5"
|
version = "1.4.5"
|
||||||
@@ -25,6 +17,14 @@ dependencies = [
|
|||||||
"libsqlite3-sys",
|
"libsqlite3-sys",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "diesel_demo"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"diesel",
|
||||||
|
"dotenv",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "diesel_derives"
|
name = "diesel_derives"
|
||||||
version = "1.4.1"
|
version = "1.4.1"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "diesel"
|
name = "diesel_demo"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Hatter Jiang <jht5945@gmail.com>"]
|
authors = ["Hatter Jiang <jht5945@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
@@ -9,4 +9,3 @@ edition = "2018"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
diesel = { version = "1.4.5", features = ["sqlite"] }
|
diesel = { version = "1.4.5", features = ["sqlite"] }
|
||||||
dotenv = "0.15.0"
|
dotenv = "0.15.0"
|
||||||
|
|
||||||
|
|||||||
@@ -8,3 +8,6 @@ diesel setup --database-url=file:test.db
|
|||||||
diesel migration generate create_posts
|
diesel migration generate create_posts
|
||||||
|
|
||||||
diesel migration run --database-url=file:test.db
|
diesel migration run --database-url=file:test.db
|
||||||
|
|
||||||
|
|
||||||
|
https://github.com/diesel-rs/diesel/tree/master/examples/sqlite/getting_started_step_3
|
||||||
@@ -8,23 +8,22 @@ use diesel::prelude::*;
|
|||||||
use diesel::sqlite::SqliteConnection;
|
use diesel::sqlite::SqliteConnection;
|
||||||
use dotenv::dotenv;
|
use dotenv::dotenv;
|
||||||
use std::env;
|
use std::env;
|
||||||
use crate::models::Post;
|
use crate::models::NewPost;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
use crate::schema::posts::dsl::*;
|
|
||||||
|
|
||||||
let connection = establish_connection();
|
let connection = establish_connection();
|
||||||
let results = posts.filter(published.eq(true))
|
create_post(&connection, "hello world", "this is a post!");
|
||||||
.limit(5)
|
}
|
||||||
.load::<Post>(&connection)
|
|
||||||
.expect("Error loading posts");
|
|
||||||
|
|
||||||
println!("Displaying {} posts", results.len());
|
pub fn create_post(conn: &SqliteConnection, title: &str, body: &str) -> usize {
|
||||||
for post in results {
|
use crate::schema::posts;
|
||||||
println!("{}", post.title);
|
|
||||||
println!("----------\n");
|
let new_post = NewPost { title, body };
|
||||||
println!("{}", post.body);
|
|
||||||
}
|
diesel::insert_into(posts::table)
|
||||||
|
.values(&new_post)
|
||||||
|
.execute(conn)
|
||||||
|
.expect("Error saving new post")
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn establish_connection() -> SqliteConnection {
|
pub fn establish_connection() -> SqliteConnection {
|
||||||
|
|||||||
@@ -1,7 +1,16 @@
|
|||||||
|
use crate::schema::posts;
|
||||||
|
|
||||||
#[derive(Queryable)]
|
#[derive(Queryable)]
|
||||||
pub struct Post {
|
pub struct Post {
|
||||||
pub id: i32,
|
pub id: i32,
|
||||||
pub title: String,
|
pub title: String,
|
||||||
pub body: String,
|
pub body: String,
|
||||||
pub published: bool,
|
pub published: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Insertable)]
|
||||||
|
#[table_name = "posts"]
|
||||||
|
pub struct NewPost<'a> {
|
||||||
|
pub title: &'a str,
|
||||||
|
pub body: &'a str,
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user