Start creating the table for Bakery and Baker objects
This commit is contained in:
parent
fce0b04e58
commit
318665d1af
@ -1 +0,0 @@
|
||||
<mxfile host="Electron" modified="2021-06-25T08:35:34.448Z" agent="5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="ArWbSkb6wXrJ0fNLQFev" version="14.6.13" type="device"><diagram id="R2lEEEUBdFMjLlhIrx00" name="Page-1">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</diagram></mxfile>
|
74
tests/bakery_chain.rs
Normal file
74
tests/bakery_chain.rs
Normal file
@ -0,0 +1,74 @@
|
||||
use sea_orm::{sea_query, DbConn, ExecErr, ExecResult};
|
||||
use sea_query::{ColumnDef, ForeignKey, ForeignKeyAction, Iden, SqliteQueryBuilder};
|
||||
|
||||
mod setup;
|
||||
|
||||
#[derive(Iden)]
|
||||
enum Bakery {
|
||||
Table,
|
||||
Id,
|
||||
Name,
|
||||
ProfitMargin,
|
||||
}
|
||||
|
||||
#[derive(Iden)]
|
||||
enum Baker {
|
||||
Table,
|
||||
Id,
|
||||
Name,
|
||||
BakeryId,
|
||||
}
|
||||
|
||||
#[async_std::test]
|
||||
// cargo test --test bakery -- --nocapture
|
||||
async fn main() {
|
||||
let db: DbConn = setup::setup().await;
|
||||
setup_schema(&db).await;
|
||||
}
|
||||
|
||||
async fn setup_schema(db: &DbConn) {
|
||||
assert!(create_bakery(db).await.is_ok());
|
||||
assert!(create_baker(db).await.is_ok());
|
||||
}
|
||||
|
||||
async fn create_bakery(db: &DbConn) -> Result<ExecResult, ExecErr> {
|
||||
let stmt = sea_query::Table::create()
|
||||
.table(Bakery::Table)
|
||||
.if_not_exists()
|
||||
.col(
|
||||
ColumnDef::new(Bakery::Id)
|
||||
.integer()
|
||||
.not_null()
|
||||
.auto_increment()
|
||||
.primary_key(),
|
||||
)
|
||||
.col(ColumnDef::new(Bakery::Name).string())
|
||||
.col(ColumnDef::new(Bakery::ProfitMargin).float())
|
||||
.build(SqliteQueryBuilder);
|
||||
db.execute(stmt.into()).await
|
||||
}
|
||||
|
||||
async fn create_baker(db: &DbConn) -> Result<ExecResult, ExecErr> {
|
||||
let stmt = sea_query::Table::create()
|
||||
.table(Baker::Table)
|
||||
.if_not_exists()
|
||||
.col(
|
||||
ColumnDef::new(Baker::Id)
|
||||
.integer()
|
||||
.not_null()
|
||||
.auto_increment()
|
||||
.primary_key(),
|
||||
)
|
||||
.col(ColumnDef::new(Baker::Name).string())
|
||||
// .foreign_key(
|
||||
// ForeignKey::create()
|
||||
// .name("FK_baker_bakery")
|
||||
// .from(Baker::Table, Baker::BakeryId)
|
||||
// .to(Bakery::Table, Bakery::Id)
|
||||
// .on_delete(ForeignKeyAction::Cascade)
|
||||
// .on_update(ForeignKeyAction::Cascade),
|
||||
// )
|
||||
.build(SqliteQueryBuilder);
|
||||
|
||||
db.execute(stmt.clone().into()).await
|
||||
}
|
1
tests/bakery_chain/bakery_chain_erd.drawio
Normal file
1
tests/bakery_chain/bakery_chain_erd.drawio
Normal file
@ -0,0 +1 @@
|
||||
<mxfile host="Electron" modified="2021-06-25T08:37:52.010Z" agent="5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="Mbktnhi5BCDVUKHHMNf_" version="14.6.13" type="device"><diagram id="R2lEEEUBdFMjLlhIrx00" name="Page-1">7Z1fc9o4EMA/DY/N4L84j4Em194ld52mM22fMootQBfb4mxRoJ/+VrGMwSsnEIPdzmgmM0WLEEK/XXl3tXYHziRZ/5GRxfyORzQe2MNoPXDeD2zbsoY+/CMlm0JiD4NhIZllLFK9KsE9+0mVsOy2ZBHN9zoKzmPBFvvCkKcpDcWejGQZX+13m/J4/1sXZEaR4D4kMZZ+ZZGYF9LAG1byD5TN5mL7i9U7CSk7K0E+JxFf7YnoWtzwVKgpfqJZQlKaCnjnjmRPNBt413Mh5C+9Gtg38DeVvS9mnM9iShYsvwh5AuIwhy43U5KwWK7zzkBjNRB8nXM9cCYZ56J4lawnNJawSgzFnG4a3t2uQybHPeADT+N1/v3JDf8cp8Hl1/m7p/nm33dqlB8kXqr1HV/9df35O8gmH64+/q1WSmzK5RewRANnPBdJDAILXuYi4090wmOegSTlKfQcT1kc10QkZrMUmiHMFxbAGf+gmWAA9kq9kbAokl8zXs2ZoPcLEsrvXIEegyzjyzSi8qcM5fCw7Eo1Hbtsq0mWPwlGp+vGtbK2BMBUKE+oyDbQRX3AdpVCKCt5d+krwarSOWekZPMdfSv1kCgdmm3HrtDAC0XnGFIeRkVAkzYIUb5iSUwKDDvrItctnLM4uiUbvpTTzQUJn8rWeM4z9hP6kwosycpVtv29Hvfyk2rMjObQ51O5tlZNdEfWex1vSS7K2fA4JoucPSpuzjgh2YylYy4EmFHRCanNDnvLhfYJcDtODXegwW25Gtx2uZ+enrePeMv+sO8MP8JKzIo9RGebhxpkDhbG0tktncof41aSz+r3SRGHhZ3Gz9vkHOyTps+2KIggj1utWnCm9kxvDH+wTJPhhTfwYE4TaFtVG/5k90xMeArTJOyZDwWVWFGpFntw7UPhvmAvGHl53fMPA+yczZ5HiG9KEloQvhcZcDCAWwD2egccIMCPcsPODdYWWIO+sQY2wsqzyGBth9Wy+uZqXSKuIZirwdoKq9s31gBfZhcZnzLxUPiaxfX2JuZEGNJtSI/6Jm1rYlnypHGTTXx0bHzkjQ6JjywN7e0GcHrc+Dps4qMj7LkJ+QvxkQ7w+czZMfHROQHr4qNuAbv6+IgZn6sVWF2E1C1YnKk0nnRbqtoAqVusOCE5AazGvWrvXtXTz16gca88DWz78mzuFY6bjHt1jDn7R7tXOsDns2acnTTu1QkB69yrTgH7OJ+1yFioCN8BInxyaAAfDljnZnUKeIR36Ef9gbDBejhWrZ/VKddyYHNudFKuukx0t/aKE1YxSykTNDFoW6HVpZ47RRtoUhmwCA+PdMozdcV9TwSOlQzmI1zmYe+YcWJjkfFoGdLogYgC8xeWUAhPk4Vh3Ya10ztrnO2YxUtB04dpRpVJjzmPKUkN6VaBcN+kXexvIaI0mtEykUXjR766rgRorXZqY2kaXcmaZ2hef05IuinzWkgKi5htvm0/Bo3vkirgUs33ZR6raG1Uq5iqnF8jFiXK+TIL6Uuk1PYG85vRl5AWKDDSXYRDDcKtMKMxEezH/pR1YNV3fJKKXeXLXNu7UHMtM2busKYexa9VH6w0BI3l4bG8+ljFgqCxgCHZ7HRT5tc47VFZZb79osu9im14UQxZ6fJ2cVuoN3Y7u1PvcoeTshsmJ35qpS2r7F5V2uK4qT+ldfxhXdFG9T3tUKV18VhBfawGpT2ZWuHj2X9kGRzSLXMc0KDcjccBll/bJ/zynGdXV22Nrp6vGj3AF0lzHHCEF1SYy1HHATrA53OCGg7jTTKxDVbdIUC3WDVH8csctjNjr63A6pL/nYIdYXsV/PliaU53TgFYewzQreniBIRMF8uPmYxxW7q6w4BO6Qaa09mY7CYSZb5YJhMN6DagdUcDnYL2seN8W5mxiZZaR0vo3l1HVzyljexH54qWfHwrgomWjrBqvyHB+EK0pAN8Pu8LX5tDXSmkgXo4VF2s1ClUHydKTcHUCQHrYqZuAeOU5X9LkgomNmZvPhVlbeDU7eaML768yEzDzByrOn8whN9GWBc8dWvIOPkxacpqGYe6tUOtPX7QOtRnu9nTx3lM41AfY9INh5+/jEON+Zq7EU4IuH/nGkdM5qkprbH27lIHmpu0uaC5qoWUKA3ft/Pt35n28W1iiOgpq4fomolviph8vVMEB62qBk42zlACV25Tr1YTuQ1PQ+msmiioOWnO5VtrieojufWRzlxJVD5bpGsVs45QsW115rbReXWme6hqjhrce6Oax6smvrz9crvfL1A4XN7Z9LpqNtSC/36qiZ6I5HRcfznq6cL8m+2a5VP9XlfNUc+qWVco983FwfWRvI5VM8AJ2POq5hvVrGdfs3yQ6Ou+Zs+V63Z91xy99WYLrJr1x6Wf6FYLC+Uw9x+Of+ytFtCsHtRfdK/+ewXn+n8=</diagram></mxfile>
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Loading…
x
Reference in New Issue
Block a user