// When this file changes, run the following command to generate a new migration: // DATABASE_URL=/tmp/db.sql diesel migration generate --diff-schema create_conversations diesel::table! { conversations (id) { id -> Text, unread_count -> BigInt, display_name -> Nullable, last_message_preview -> Nullable, date -> Timestamp, } } diesel::table! { participants (id) { id -> Integer, display_name -> Nullable, is_me -> Bool, } } diesel::table! { conversation_participants (conversation_id, participant_id) { conversation_id -> Text, participant_id -> Integer, } } diesel::table! { messages (id) { id -> Text, // guid text -> Text, sender_participant_id -> Nullable, date -> Timestamp, } } diesel::table! { conversation_messages (conversation_id, message_id) { conversation_id -> Text, // guid message_id -> Text, // guid } } diesel::joinable!(conversation_participants -> conversations (conversation_id)); diesel::joinable!(conversation_participants -> participants (participant_id)); diesel::allow_tables_to_appear_in_same_query!(conversations, participants, conversation_participants); diesel::joinable!(conversation_messages -> conversations (conversation_id)); diesel::joinable!(conversation_messages -> messages (message_id)); diesel::allow_tables_to_appear_in_same_query!(conversations, messages, conversation_messages);