mirror of
https://github.com/zaphar/kitchen.git
synced 2025-07-22 19:40:14 -04:00
Create database if it does not exist
This commit is contained in:
parent
95b82e2def
commit
8fd940bd00
@ -0,0 +1,2 @@
|
|||||||
|
-- Add down migration script here
|
||||||
|
drop index mealplan_lookup_index;
|
@ -0,0 +1,2 @@
|
|||||||
|
-- Add up migration script here
|
||||||
|
create unique index mealplan_lookup_index on plan_recipes (user_id, plan_date, recipe_id);
|
@ -112,6 +112,16 @@
|
|||||||
},
|
},
|
||||||
"query": "delete from sessions where id = ?"
|
"query": "delete from sessions where id = ?"
|
||||||
},
|
},
|
||||||
|
"83824ea638cb64c524f5c8984ef6ef28dfe781f0abf168abc4ae9a51e6e0ae88": {
|
||||||
|
"describe": {
|
||||||
|
"columns": [],
|
||||||
|
"nullable": [],
|
||||||
|
"parameters": {
|
||||||
|
"Right": 4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"query": "insert into plan_recipes (user_id, plan_date, recipe_id, count) values (?, ?, ?, ?)\n on conflict (user_id, plan_date, recipe_id) do update set count=excluded.count;"
|
||||||
|
},
|
||||||
"8490e1bb40879caed62ac1c38cb9af48246f3451b6f7f1e1f33850f1dbe25f58": {
|
"8490e1bb40879caed62ac1c38cb9af48246f3451b6f7f1e1f33850f1dbe25f58": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [],
|
"columns": [],
|
||||||
@ -214,16 +224,6 @@
|
|||||||
},
|
},
|
||||||
"query": "with max_date as (\n select user_id, max(date(plan_date)) as plan_date from plan_recipes group by user_id\n)\n\nselect plan_recipes.plan_date as \"plan_date: NaiveDate\", plan_recipes.recipe_id, plan_recipes.count\n from plan_recipes\n inner join max_date on plan_recipes.user_id = max_date.user_id\nwhere\n plan_recipes.user_id = ?\n and plan_recipes.plan_date = max_date.plan_date"
|
"query": "with max_date as (\n select user_id, max(date(plan_date)) as plan_date from plan_recipes group by user_id\n)\n\nselect plan_recipes.plan_date as \"plan_date: NaiveDate\", plan_recipes.recipe_id, plan_recipes.count\n from plan_recipes\n inner join max_date on plan_recipes.user_id = max_date.user_id\nwhere\n plan_recipes.user_id = ?\n and plan_recipes.plan_date = max_date.plan_date"
|
||||||
},
|
},
|
||||||
"c889e3621cb2977204b847c03930cde394cc16eaa63741f8ca07484a41f1aa87": {
|
|
||||||
"describe": {
|
|
||||||
"columns": [],
|
|
||||||
"nullable": [],
|
|
||||||
"parameters": {
|
|
||||||
"Right": 4
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"query": "insert into plan_recipes (user_id, plan_date, recipe_id, count) values (?, ?, ?, ?)"
|
|
||||||
},
|
|
||||||
"c988364f9f83f4fa8bd0e594bab432ee7c9ec47ca40f4d16e5e2a8763653f377": {
|
"c988364f9f83f4fa8bd0e594bab432ee7c9ec47ca40f4d16e5e2a8763653f377": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
|
@ -199,7 +199,9 @@ pub struct SqliteStore {
|
|||||||
impl SqliteStore {
|
impl SqliteStore {
|
||||||
pub async fn new<P: AsRef<Path>>(path: P) -> sqlx::Result<Self> {
|
pub async fn new<P: AsRef<Path>>(path: P) -> sqlx::Result<Self> {
|
||||||
let url = format!("sqlite://{}/store.db", path.as_ref().to_string_lossy());
|
let url = format!("sqlite://{}/store.db", path.as_ref().to_string_lossy());
|
||||||
let options = SqliteConnectOptions::from_str(&url)?.journal_mode(SqliteJournalMode::Wal);
|
let options = SqliteConnectOptions::from_str(&url)?
|
||||||
|
.journal_mode(SqliteJournalMode::Wal)
|
||||||
|
.create_if_missing(true);
|
||||||
info!(?options, "Connecting to sqlite db");
|
info!(?options, "Connecting to sqlite db");
|
||||||
let pool = Arc::new(sqlx::SqlitePool::connect_with(options).await?);
|
let pool = Arc::new(sqlx::SqlitePool::connect_with(options).await?);
|
||||||
Ok(Self { pool, url })
|
Ok(Self { pool, url })
|
||||||
|
@ -1 +1,2 @@
|
|||||||
insert into plan_recipes (user_id, plan_date, recipe_id, count) values (?, ?, ?, ?)
|
insert into plan_recipes (user_id, plan_date, recipe_id, count) values (?, ?, ?, ?)
|
||||||
|
on conflict (user_id, plan_date, recipe_id) do update set count=excluded.count;
|
Loading…
x
Reference in New Issue
Block a user