Browse Source

Move migrations to files

master
Alex Mikhalev 4 years ago
parent
commit
2e17452315
  1. 33
      src/db.rs
  2. 1
      src/migrations/0001-table_sections-down.sql
  3. 5
      src/migrations/0001-table_sections-up.sql
  4. 1
      src/migrations/0002-section_rows-down.sql
  5. 7
      src/migrations/0002-section_rows-up.sql

33
src/db.rs

@ -1,27 +1,18 @@
use crate::migrations::{Migrations, SimpleMigration}; use crate::migrations::{Migrations, SimpleMigration};
macro_rules! include_file_migration {
($mig_version:expr, $mig_name:literal) => {
SimpleMigration::new_box(
$mig_version,
include_str!(concat!("migrations/", $mig_name, "-up.sql")),
include_str!(concat!("migrations/", $mig_name, "-down.sql")),
)
};
}
pub fn create_migrations() -> Migrations { pub fn create_migrations() -> Migrations {
let mut migs = Migrations::new(); let mut migs = Migrations::new();
migs.add(SimpleMigration::new_box( migs.add(include_file_migration!(1, "0001-table_sections"));
1, migs.add(include_file_migration!(2, "0002-section_rows"));
"CREATE TABLE sections (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
interface_id INTEGER NOT NULL
);",
"DROP TABLE sections;",
));
migs.add(SimpleMigration::new_box(
2,
"INSERT INTO sections (id, name, interface_id)
VALUES
(1, 'Front Yard Middle', 0),
(2, 'Front Yard Left', 1),
(3, 'Front Yard Right', 2),
(4, 'Back Yard Middle', 3),
(5, 'Back Yard Sauna', 4),
(6, 'Garden', 5);",
"DELETE FROM sections;",
));
migs migs
} }

1
src/migrations/0001-table_sections-down.sql

@ -0,0 +1 @@
DROP TABLE sections;

5
src/migrations/0001-table_sections-up.sql

@ -0,0 +1,5 @@
CREATE TABLE sections (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
interface_id INTEGER NOT NULL
);

1
src/migrations/0002-section_rows-down.sql

@ -0,0 +1 @@
DELETE FROM sections;

7
src/migrations/0002-section_rows-up.sql

@ -0,0 +1,7 @@
INSERT INTO sections (id, name, interface_id)
VALUES (1, 'Front Yard Middle', 0),
(2, 'Front Yard Left', 1),
(3, 'Front Yard Right', 2),
(4, 'Back Yard Middle', 3),
(5, 'Back Yard Sauna', 4),
(6, 'Garden', 5);
Loading…
Cancel
Save