Add a tag model
This commit is contained in:
parent
e16acf8436
commit
2b7a5bee93
|
@ -0,0 +1,2 @@
|
||||||
|
-- This file should undo anything in `up.sql`
|
||||||
|
DROP TABLE tags;
|
|
@ -0,0 +1,7 @@
|
||||||
|
-- Your SQL goes here
|
||||||
|
CREATE TABLE tags (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
tag TEXT NOT NULL DEFAULT '',
|
||||||
|
is_hastag BOOLEAN NOT NULL DEFAULT 'f',
|
||||||
|
post_id INTEGER REFERENCES posts(id) ON DELETE CASCADE NOT NULL
|
||||||
|
)
|
|
@ -119,4 +119,5 @@ pub mod posts;
|
||||||
pub mod reshares;
|
pub mod reshares;
|
||||||
pub mod safe_string;
|
pub mod safe_string;
|
||||||
pub mod schema;
|
pub mod schema;
|
||||||
|
pub mod tags;
|
||||||
pub mod users;
|
pub mod users;
|
||||||
|
|
|
@ -139,6 +139,15 @@ table! {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table! {
|
||||||
|
tags (id) {
|
||||||
|
id -> Int4,
|
||||||
|
tag -> Text,
|
||||||
|
is_hastag -> Bool,
|
||||||
|
post_id -> Int4,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
table! {
|
table! {
|
||||||
users (id) {
|
users (id) {
|
||||||
id -> Int4,
|
id -> Int4,
|
||||||
|
@ -178,6 +187,7 @@ joinable!(post_authors -> users (author_id));
|
||||||
joinable!(posts -> blogs (blog_id));
|
joinable!(posts -> blogs (blog_id));
|
||||||
joinable!(reshares -> posts (post_id));
|
joinable!(reshares -> posts (post_id));
|
||||||
joinable!(reshares -> users (user_id));
|
joinable!(reshares -> users (user_id));
|
||||||
|
joinable!(tags -> posts (post_id));
|
||||||
joinable!(users -> instances (instance_id));
|
joinable!(users -> instances (instance_id));
|
||||||
|
|
||||||
allow_tables_to_appear_in_same_query!(
|
allow_tables_to_appear_in_same_query!(
|
||||||
|
@ -193,5 +203,6 @@ allow_tables_to_appear_in_same_query!(
|
||||||
post_authors,
|
post_authors,
|
||||||
posts,
|
posts,
|
||||||
reshares,
|
reshares,
|
||||||
|
tags,
|
||||||
users,
|
users,
|
||||||
);
|
);
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
use diesel::{self, PgConnection, ExpressionMethods, RunQueryDsl, QueryDsl};
|
||||||
|
use schema::tags;
|
||||||
|
|
||||||
|
#[derive(Queryable)]
|
||||||
|
pub struct Tag {
|
||||||
|
pub id: i32,
|
||||||
|
pub tag: String,
|
||||||
|
pub is_hastag: bool,
|
||||||
|
pub post_id: i32
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Insertable)]
|
||||||
|
#[table_name = "tags"]
|
||||||
|
pub struct NewTag {
|
||||||
|
pub tag: String,
|
||||||
|
pub is_hastag: bool,
|
||||||
|
pub post_id: i32
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Tag {
|
||||||
|
insert!(tags, NewTag);
|
||||||
|
get!(tags);
|
||||||
|
}
|
Loading…
Reference in New Issue