From 92bf14bb7cc0c10f67a9a67e7512138c15db6ec0 Mon Sep 17 00:00:00 2001 From: Melody Horn / boringcactus Date: Mon, 14 Jun 2021 20:54:57 -0600 Subject: start working on migrations --- src/apps.rs | 4 +++- src/contrib/admin/migrations/m_0001_initial.rs | 10 ++++++++++ src/contrib/admin/migrations/mod.rs | 3 +++ src/contrib/admin/mod.rs | 3 ++- src/db/migration/mod.rs | 12 ++++++++++++ src/db/mod.rs | 1 + 6 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 src/contrib/admin/migrations/m_0001_initial.rs create mode 100644 src/contrib/admin/migrations/mod.rs create mode 100644 src/db/migration/mod.rs (limited to 'src') diff --git a/src/apps.rs b/src/apps.rs index 26c6124..785ce8c 100644 --- a/src/apps.rs +++ b/src/apps.rs @@ -1,3 +1,5 @@ -pub struct AppConfig { +use crate::db::migration::Migration; +pub struct AppConfig { + pub migrations: &'static [Migration], } diff --git a/src/contrib/admin/migrations/m_0001_initial.rs b/src/contrib/admin/migrations/m_0001_initial.rs new file mode 100644 index 0000000..6fed631 --- /dev/null +++ b/src/contrib/admin/migrations/m_0001_initial.rs @@ -0,0 +1,10 @@ +use crate::db::migration::{Migration, DatabaseChange}; + +pub const MIGRATION: Migration = Migration { + id: 1, + name: "initial", + prereqs: &[], + changes: &[ + DatabaseChange::CreateModel, + ], +}; diff --git a/src/contrib/admin/migrations/mod.rs b/src/contrib/admin/migrations/mod.rs new file mode 100644 index 0000000..5ecbb82 --- /dev/null +++ b/src/contrib/admin/migrations/mod.rs @@ -0,0 +1,3 @@ +use crate::db::migration::{Migration, gather}; + +gather!(); diff --git a/src/contrib/admin/mod.rs b/src/contrib/admin/mod.rs index 0f7e880..5098a4a 100644 --- a/src/contrib/admin/mod.rs +++ b/src/contrib/admin/mod.rs @@ -1,7 +1,8 @@ use crate::apps::AppConfig; +mod migrations; pub mod site; pub const APP: AppConfig = AppConfig { - + migrations: migrations::migrations, }; diff --git a/src/db/migration/mod.rs b/src/db/migration/mod.rs new file mode 100644 index 0000000..d53f46b --- /dev/null +++ b/src/db/migration/mod.rs @@ -0,0 +1,12 @@ +pub use tosin_macros::gather_migrations as gather; + +pub struct Migration { + pub id: usize, + pub name: &'static str, + pub prereqs: &'static [(&'static str, usize)], + pub changes: &'static [DatabaseChange], +} + +pub enum DatabaseChange { + CreateModel, +} diff --git a/src/db/mod.rs b/src/db/mod.rs index b6528f5..05c38df 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -1,2 +1,3 @@ pub mod backend; +pub mod migration; pub mod models; -- cgit v1.2.3