use sea_orm_migration::prelude::*;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.get_connection()
.execute_unprepared(
r#"
CREATE TABLE ap_notes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
uuid TEXT NOT NULL UNIQUE,
actor_id INTEGER NOT NULL,
content_md TEXT NOT NULL,
content_html TEXT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (actor_id) REFERENCES ap_actors(id) ON DELETE CASCADE
);
CREATE INDEX index_ap_notes_on_actor_id_and_created_at ON ap_notes (actor_id, created_at);
CREATE TABLE ap_activities (
id INTEGER PRIMARY KEY AUTOINCREMENT,
uuid TEXT NOT NULL UNIQUE,
actor_id INTEGER NOT NULL,
activity_json TEXT NOT NULL,
object_url TEXT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (actor_id) REFERENCES ap_actors(id) ON DELETE CASCADE
);
CREATE INDEX index_ap_activities_on_actor_id_and_created_at ON ap_activities (actor_id, created_at);
"#,
)
.await?;
Ok(())
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.get_connection()
.execute_unprepared(
r#"
DROP TABLE IF EXISTS ap_activities;
DROP TABLE IF EXISTS ap_notes;
"#,
)
.await?;
Ok(())
}
}