diff --git a/migrations/2024-08-16-221326_create_projects/down.sql b/migrations/2024-08-16-221326_create_projects/down.sql new file mode 100644 index 0000000..1884a8f --- /dev/null +++ b/migrations/2024-08-16-221326_create_projects/down.sql @@ -0,0 +1,2 @@ +-- This file should undo anything in `up.sql` +DROP TABLE IF EXISTS "projects"; diff --git a/migrations/2024-08-16-221326_create_projects/up.sql b/migrations/2024-08-16-221326_create_projects/up.sql new file mode 100644 index 0000000..1bddc94 --- /dev/null +++ b/migrations/2024-08-16-221326_create_projects/up.sql @@ -0,0 +1,6 @@ +-- Your SQL goes here +CREATE TABLE "projects"( + "id" SERIAL NOT NULL PRIMARY KEY, + "title" TEXT NOT NULL +); + diff --git a/src/models/mod.rs b/src/models/mod.rs new file mode 100644 index 0000000..dfc721a --- /dev/null +++ b/src/models/mod.rs @@ -0,0 +1 @@ +pub(crate) mod project; diff --git a/src/models/project.rs b/src/models/project.rs new file mode 100644 index 0000000..8bed447 --- /dev/null +++ b/src/models/project.rs @@ -0,0 +1,17 @@ +use crate::schema::projects; +use diesel::prelude::*; +use serde::{Deserialize, Serialize}; + +#[derive(Queryable, Selectable, Serialize, Deserialize)] +#[diesel(table_name = crate::schema::projects)] +#[diesel(check_for_backend(diesel::pg::Pg))] +pub struct Project { + pub(crate) id: i32, + pub(crate) title: String, +} + +#[derive(Insertable, Serialize, Deserialize)] +#[diesel(table_name = projects)] +pub struct NewProject<'a> { + pub title: &'a str, +} diff --git a/src/schema/mod.rs b/src/schema/mod.rs new file mode 100644 index 0000000..6ad8716 --- /dev/null +++ b/src/schema/mod.rs @@ -0,0 +1,8 @@ +// @generated automatically by Diesel CLI. + +diesel::table! { + projects (id) { + id -> Int4, + title -> Text, + } +}