diff --git a/Cargo.toml b/Cargo.toml index 2f8bf9a..ebb7fb5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,5 +2,6 @@ members = [ "sprinklers_core", + "sprinklers_database", "sprinklers_rs" ] \ No newline at end of file diff --git a/sprinklers_database/Cargo.toml b/sprinklers_database/Cargo.toml new file mode 100644 index 0000000..0992a03 --- /dev/null +++ b/sprinklers_database/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "sprinklers_database" +version = "0.1.0" +authors = ["Alex Mikhalev "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +sprinklers_core = { path = "../sprinklers_core" } +rusqlite = "0.24.0" +eyre = "0.6.0" +serde = { version = "1.0.116" } +serde_json = "1.0.57" +thiserror = "1.0.20" +tracing = { version = "0.1.19" } diff --git a/sprinklers_rs/scripts/add_migration.sh b/sprinklers_database/add_migration.sh similarity index 91% rename from sprinklers_rs/scripts/add_migration.sh rename to sprinklers_database/add_migration.sh index 2c84cb9..cc53854 100755 --- a/sprinklers_rs/scripts/add_migration.sh +++ b/sprinklers_database/add_migration.sh @@ -18,7 +18,7 @@ if [[ -z "$MIGRATION_NAME" ]]; then exit 1 fi -MIGRATIONS_DIR="$PROJECT_ROOT/src/database/migrations" +MIGRATIONS_DIR="$PROJECT_ROOT/sprinklers_database/src/migrations" # echo "MIGRATIONS_DIR: $MIGRATIONS_DIR" @@ -59,7 +59,7 @@ done LINE_TO_INSERT="\ \ \ \ migs.add(include_file_migration!($NEXT_MIGRATION, \"$NEXT_MIGRATION_PREFIX-$MIGRATION_NAME\"));" -MIGRATIONS_RS="$PROJECT_ROOT/src/database/migrations/mod.rs" +MIGRATIONS_RS="$PROJECT_ROOT/sprinklers_database/src/migrations/mod.rs" echo "Inserting line in $MIGRATIONS_RS" sed -i "/INSERT MIGRATION ABOVE/i \ $LINE_TO_INSERT" "$MIGRATIONS_RS" diff --git a/sprinklers_rs/src/database/mod.rs b/sprinklers_database/src/lib.rs similarity index 100% rename from sprinklers_rs/src/database/mod.rs rename to sprinklers_database/src/lib.rs diff --git a/sprinklers_rs/src/database/migration.rs b/sprinklers_database/src/migration.rs similarity index 97% rename from sprinklers_rs/src/database/migration.rs rename to sprinklers_database/src/migration.rs index a461777..dc3346c 100644 --- a/sprinklers_rs/src/database/migration.rs +++ b/sprinklers_database/src/migration.rs @@ -116,11 +116,17 @@ pub struct Migrations { migrations: BTreeMap>, } +impl Default for Migrations { + fn default() -> Self { + Self { + migrations: BTreeMap::default(), + } + } +} + impl Migrations { pub fn new() -> Self { - Self { - migrations: BTreeMap::new(), - } + Self::default() } pub fn add(&mut self, migration: Box) { diff --git a/sprinklers_rs/src/database/migrations/0001-table_sections-down.sql b/sprinklers_database/src/migrations/0001-table_sections-down.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0001-table_sections-down.sql rename to sprinklers_database/src/migrations/0001-table_sections-down.sql diff --git a/sprinklers_rs/src/database/migrations/0001-table_sections-up.sql b/sprinklers_database/src/migrations/0001-table_sections-up.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0001-table_sections-up.sql rename to sprinklers_database/src/migrations/0001-table_sections-up.sql diff --git a/sprinklers_rs/src/database/migrations/0002-section_rows-down.sql b/sprinklers_database/src/migrations/0002-section_rows-down.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0002-section_rows-down.sql rename to sprinklers_database/src/migrations/0002-section_rows-down.sql diff --git a/sprinklers_rs/src/database/migrations/0002-section_rows-up.sql b/sprinklers_database/src/migrations/0002-section_rows-up.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0002-section_rows-up.sql rename to sprinklers_database/src/migrations/0002-section_rows-up.sql diff --git a/sprinklers_rs/src/database/migrations/0003-table_programs-down.sql b/sprinklers_database/src/migrations/0003-table_programs-down.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0003-table_programs-down.sql rename to sprinklers_database/src/migrations/0003-table_programs-down.sql diff --git a/sprinklers_rs/src/database/migrations/0003-table_programs-up.sql b/sprinklers_database/src/migrations/0003-table_programs-up.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0003-table_programs-up.sql rename to sprinklers_database/src/migrations/0003-table_programs-up.sql diff --git a/sprinklers_rs/src/database/migrations/0004-program_rows-down.sql b/sprinklers_database/src/migrations/0004-program_rows-down.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0004-program_rows-down.sql rename to sprinklers_database/src/migrations/0004-program_rows-down.sql diff --git a/sprinklers_rs/src/database/migrations/0004-program_rows-up.sql b/sprinklers_database/src/migrations/0004-program_rows-up.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0004-program_rows-up.sql rename to sprinklers_database/src/migrations/0004-program_rows-up.sql diff --git a/sprinklers_rs/src/database/migrations/0005-view_program_sequence-down.sql b/sprinklers_database/src/migrations/0005-view_program_sequence-down.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0005-view_program_sequence-down.sql rename to sprinklers_database/src/migrations/0005-view_program_sequence-down.sql diff --git a/sprinklers_rs/src/database/migrations/0005-view_program_sequence-up.sql b/sprinklers_database/src/migrations/0005-view_program_sequence-up.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0005-view_program_sequence-up.sql rename to sprinklers_database/src/migrations/0005-view_program_sequence-up.sql diff --git a/sprinklers_rs/src/database/migrations/0006-fix_view_program_seq-down.sql b/sprinklers_database/src/migrations/0006-fix_view_program_seq-down.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0006-fix_view_program_seq-down.sql rename to sprinklers_database/src/migrations/0006-fix_view_program_seq-down.sql diff --git a/sprinklers_rs/src/database/migrations/0006-fix_view_program_seq-up.sql b/sprinklers_database/src/migrations/0006-fix_view_program_seq-up.sql similarity index 100% rename from sprinklers_rs/src/database/migrations/0006-fix_view_program_seq-up.sql rename to sprinklers_database/src/migrations/0006-fix_view_program_seq-up.sql diff --git a/sprinklers_rs/src/database/migrations/mod.rs b/sprinklers_database/src/migrations/mod.rs similarity index 100% rename from sprinklers_rs/src/database/migrations/mod.rs rename to sprinklers_database/src/migrations/mod.rs diff --git a/sprinklers_rs/src/database/program.rs b/sprinklers_database/src/program.rs similarity index 100% rename from sprinklers_rs/src/database/program.rs rename to sprinklers_database/src/program.rs diff --git a/sprinklers_rs/src/database/section.rs b/sprinklers_database/src/section.rs similarity index 100% rename from sprinklers_rs/src/database/section.rs rename to sprinklers_database/src/section.rs diff --git a/sprinklers_rs/Cargo.toml b/sprinklers_rs/Cargo.toml index 297d8a7..67b2180 100644 --- a/sprinklers_rs/Cargo.toml +++ b/sprinklers_rs/Cargo.toml @@ -8,7 +8,7 @@ edition = "2018" [dependencies] sprinklers_core = { path = "../sprinklers_core" } -rusqlite = "0.24.0" +sprinklers_database = { path = "../sprinklers_database" } color-eyre = "0.5.1" eyre = "0.6.0" thiserror = "1.0.20" diff --git a/sprinklers_rs/src/main.rs b/sprinklers_rs/src/main.rs index 2e5c55a..3981fe5 100644 --- a/sprinklers_rs/src/main.rs +++ b/sprinklers_rs/src/main.rs @@ -1,7 +1,6 @@ #![warn(clippy::all)] #![warn(clippy::print_stdout)] -mod database; mod mqtt; mod option_future; mod program_runner; @@ -12,6 +11,7 @@ mod trace_listeners; mod update_listener; use sprinklers_core::section_interface::MockSectionInterface; +use sprinklers_database as database; use update_listener::UpdateListener; use eyre::Result;