36 lines
884 B
Rust
36 lines
884 B
Rust
#[macro_use]
|
|
extern crate diesel;
|
|
|
|
pub mod schema;
|
|
pub mod models;
|
|
|
|
use diesel::prelude::*;
|
|
use diesel::sqlite::SqliteConnection;
|
|
use dotenv::dotenv;
|
|
use std::env;
|
|
use crate::models::NewPost;
|
|
|
|
fn main() {
|
|
let connection = establish_connection();
|
|
create_post(&connection, "hello world", "this is a post!");
|
|
}
|
|
|
|
pub fn create_post(conn: &SqliteConnection, title: &str, body: &str) -> usize {
|
|
use crate::schema::posts;
|
|
|
|
let new_post = NewPost { title, body };
|
|
|
|
diesel::insert_into(posts::table)
|
|
.values(&new_post)
|
|
.execute(conn)
|
|
.expect("Error saving new post")
|
|
}
|
|
|
|
pub fn establish_connection() -> SqliteConnection {
|
|
dotenv().ok();
|
|
|
|
let database_url = env::var("DATABASE_URL")
|
|
.expect("DATABASE_URL must be set");
|
|
SqliteConnection::establish(&database_url)
|
|
.expect(&format!("Error connecting to {}", database_url))
|
|
} |