From cd01734735811174c089e70aa75c1b7ccad5a246 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 30 Oct 2023 14:59:39 +0100 Subject: [PATCH] add more migration info at start --- ...3c17feccb538ea39eca9db7d8f36dfd61aec6.json | 20 +++++++++++++++++ backend/src/main.rs | 22 +++++++++++++++++++ backend/windmill-api/src/lib.rs | 1 + .../(root)/(logged)/flows/dev/+page.svelte | 2 +- 4 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 backend/.sqlx/query-f8696ade96d00b7e6660c44d7443c17feccb538ea39eca9db7d8f36dfd61aec6.json diff --git a/backend/.sqlx/query-f8696ade96d00b7e6660c44d7443c17feccb538ea39eca9db7d8f36dfd61aec6.json b/backend/.sqlx/query-f8696ade96d00b7e6660c44d7443c17feccb538ea39eca9db7d8f36dfd61aec6.json new file mode 100644 index 0000000000..74715d1955 --- /dev/null +++ b/backend/.sqlx/query-f8696ade96d00b7e6660c44d7443c17feccb538ea39eca9db7d8f36dfd61aec6.json @@ -0,0 +1,20 @@ +{ + "db_name": "PostgreSQL", + "query": "select version from _sqlx_migrations order by version desc limit 1;", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "version", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [] + }, + "nullable": [ + false + ] + }, + "hash": "f8696ade96d00b7e6660c44d7443c17feccb538ea39eca9db7d8f36dfd61aec6" +} diff --git a/backend/src/main.rs b/backend/src/main.rs index 6ebad7b95c..caf797d5e6 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -198,9 +198,31 @@ async fn main() -> anyhow::Result<()> { None }; + let last_mig_version = + sqlx::query_scalar!("select version from _sqlx_migrations order by version desc limit 1;") + .fetch_optional(&db) + .await + .ok() + .flatten(); + + tracing::info!( + "Last migration version: {last_mig_version:?}. Starting potential migration of the db if first connection on a new windmill version (can take a while depending on the migration) ...", + ); + // migration code to avoid break windmill_api::migrate_db(&db).await?; + let last_mig_version = + sqlx::query_scalar!("select version from _sqlx_migrations order by version desc limit 1;") + .fetch_optional(&db) + .await + .ok() + .flatten(); + + tracing::info!( + "Completed potential migration of the db. Last migration version: {last_mig_version:?}", + ); + let (tx, rx) = tokio::sync::broadcast::channel::<()>(3); let shutdown_signal = windmill_common::shutdown_signal(tx.clone(), rx.resubscribe()); diff --git a/backend/windmill-api/src/lib.rs b/backend/windmill-api/src/lib.rs index e88685c681..b83474e46f 100644 --- a/backend/windmill-api/src/lib.rs +++ b/backend/windmill-api/src/lib.rs @@ -328,6 +328,7 @@ async fn ee_license() -> String { async fn openapi() -> &'static str { include_str!("../openapi-deref.yaml") } + pub async fn migrate_db(db: &DB) -> anyhow::Result<()> { db::migrate(db).await?; Ok(()) diff --git a/frontend/src/routes/(root)/(logged)/flows/dev/+page.svelte b/frontend/src/routes/(root)/(logged)/flows/dev/+page.svelte index a66bbe1d12..67d67c9099 100644 --- a/frontend/src/routes/(root)/(logged)/flows/dev/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/flows/dev/+page.svelte @@ -178,7 +178,7 @@ code={JSON.stringify($flowStore, null, 4)} lang="json" on:change={(e) => { - const code = e.detail + const code = e.detail.code try { $flowStore = JSON.parse(code) } catch (e) {