From 4fec44f51d3e736a7ebe1dd4c80ef419657195ae Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Wed, 21 Oct 2020 09:46:54 +0500 Subject: [PATCH] Create tables `employees`, `employee_infos` --- .../down.sql | 6 +++++ .../2020-10-21-044318_create_employees/up.sql | 19 ++++++++++++++ src/schema.rs | 25 +++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 migrations/2020-10-21-044318_create_employees/down.sql create mode 100644 migrations/2020-10-21-044318_create_employees/up.sql diff --git a/migrations/2020-10-21-044318_create_employees/down.sql b/migrations/2020-10-21-044318_create_employees/down.sql new file mode 100644 index 0000000..48c016f --- /dev/null +++ b/migrations/2020-10-21-044318_create_employees/down.sql @@ -0,0 +1,6 @@ +-- This file should undo anything in `up.sql` + +DROP INDEX index_employee_infos_on_employee_id_and_locale; + +DROP TABLE employee_infos; +DROP TABLE employees; diff --git a/migrations/2020-10-21-044318_create_employees/up.sql b/migrations/2020-10-21-044318_create_employees/up.sql new file mode 100644 index 0000000..5f216eb --- /dev/null +++ b/migrations/2020-10-21-044318_create_employees/up.sql @@ -0,0 +1,19 @@ +-- Your SQL goes here + +CREATE TABLE employees ( + id SERIAL PRIMARY KEY, + name VARCHAR NOT NULL, + role VARCHAR NOT NULL +); + +CREATE TABLE employee_infos ( + id SERIAL PRIMARY KEY, + employee_id SERIAL NOT NULL, + locale VARCHAR NOT NULL, + name VARCHAR NOT NULL, + + CONSTRAINT employee_id_fk FOREIGN KEY (employee_id) REFERENCES employees(id) +); + +CREATE UNIQUE INDEX index_employee_infos_on_employee_id_and_locale + ON employee_infos USING btree (employee_id, locale); diff --git a/src/schema.rs b/src/schema.rs index 68465d8..98741ee 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -1,3 +1,20 @@ +table! { + employee_infos (id) { + id -> Int4, + employee_id -> Int4, + locale -> Varchar, + name -> Varchar, + } +} + +table! { + employees (id) { + id -> Int4, + name -> Varchar, + role -> Varchar, + } +} + table! { users (id) { id -> Int4, @@ -5,3 +22,11 @@ table! { encrypted_password -> Varchar, } } + +joinable!(employee_infos -> employees (employee_id)); + +allow_tables_to_appear_in_same_query!( + employee_infos, + employees, + users, +);