mirror of
https://github.com/LemmyNet/lemmy.git
synced 2025-02-10 11:04:49 +00:00
Only print migration output when running migrate command (#5363)
* Revert "Change println! to debug! (#5346)"
This reverts commit 8ee81a3967
.
* Using a custom print command.
This commit is contained in:
parent
2847040b3f
commit
c0e156dfa7
2 changed files with 29 additions and 10 deletions
|
@ -20,7 +20,7 @@ use diesel::{
|
||||||
use diesel_migrations::MigrationHarness;
|
use diesel_migrations::MigrationHarness;
|
||||||
use lemmy_utils::{error::LemmyResult, settings::SETTINGS};
|
use lemmy_utils::{error::LemmyResult, settings::SETTINGS};
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
use tracing::log::debug;
|
use tracing::debug;
|
||||||
|
|
||||||
diesel::table! {
|
diesel::table! {
|
||||||
pg_namespace (nspname) {
|
pg_namespace (nspname) {
|
||||||
|
@ -52,6 +52,7 @@ struct MigrationHarnessWrapper<'a> {
|
||||||
conn: &'a mut PgConnection,
|
conn: &'a mut PgConnection,
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
diff_checked_migration_name: Option<String>,
|
diff_checked_migration_name: Option<String>,
|
||||||
|
options: &'a Options,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MigrationHarnessWrapper<'_> {
|
impl MigrationHarnessWrapper<'_> {
|
||||||
|
@ -67,7 +68,7 @@ impl MigrationHarnessWrapper<'_> {
|
||||||
.map(|d| d.to_string())
|
.map(|d| d.to_string())
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
let name = migration.name();
|
let name = migration.name();
|
||||||
debug!("{duration} run {name}");
|
self.options.print(&format!("{duration} run {name}"));
|
||||||
|
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
@ -112,7 +113,7 @@ impl MigrationHarness<Pg> for MigrationHarnessWrapper<'_> {
|
||||||
.map(|d| d.to_string())
|
.map(|d| d.to_string())
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
let name = migration.name();
|
let name = migration.name();
|
||||||
debug!("{duration} revert {name}");
|
self.options.print(&format!("{duration} revert {name}"));
|
||||||
|
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
@ -128,6 +129,7 @@ pub struct Options {
|
||||||
enable_diff_check: bool,
|
enable_diff_check: bool,
|
||||||
revert: bool,
|
revert: bool,
|
||||||
run: bool,
|
run: bool,
|
||||||
|
print_output: bool,
|
||||||
limit: Option<u64>,
|
limit: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,6 +154,21 @@ impl Options {
|
||||||
self.limit = Some(limit);
|
self.limit = Some(limit);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// If print_output is true, use println!.
|
||||||
|
/// Otherwise, use debug!
|
||||||
|
pub fn print_output(mut self) -> Self {
|
||||||
|
self.print_output = true;
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
|
fn print(&self, text: &str) {
|
||||||
|
if self.print_output {
|
||||||
|
println!("{text}");
|
||||||
|
} else {
|
||||||
|
debug!("{text}");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Checked by tests
|
/// Checked by tests
|
||||||
|
@ -192,9 +209,9 @@ pub fn run(options: Options) -> LemmyResult<Branch> {
|
||||||
|
|
||||||
// Block concurrent attempts to run migrations until `conn` is closed, and disable the
|
// Block concurrent attempts to run migrations until `conn` is closed, and disable the
|
||||||
// trigger that prevents the Diesel CLI from running migrations
|
// trigger that prevents the Diesel CLI from running migrations
|
||||||
debug!("Waiting for lock...");
|
options.print("Waiting for lock...");
|
||||||
conn.batch_execute("SELECT pg_advisory_lock(0);")?;
|
conn.batch_execute("SELECT pg_advisory_lock(0);")?;
|
||||||
debug!("Running Database migrations (This may take a long time)...");
|
options.print("Running Database migrations (This may take a long time)...");
|
||||||
|
|
||||||
// Drop `r` schema, so migrations don't need to be made to work both with and without things in
|
// Drop `r` schema, so migrations don't need to be made to work both with and without things in
|
||||||
// it existing
|
// it existing
|
||||||
|
@ -227,7 +244,7 @@ pub fn run(options: Options) -> LemmyResult<Branch> {
|
||||||
Branch::ReplaceableSchemaNotRebuilt
|
Branch::ReplaceableSchemaNotRebuilt
|
||||||
};
|
};
|
||||||
|
|
||||||
debug!("Database migrations complete.");
|
options.print("Database migrations complete.");
|
||||||
|
|
||||||
Ok(output)
|
Ok(output)
|
||||||
}
|
}
|
||||||
|
@ -265,6 +282,7 @@ fn run_selected_migrations(
|
||||||
) -> diesel::migration::Result<()> {
|
) -> diesel::migration::Result<()> {
|
||||||
let mut wrapper = MigrationHarnessWrapper {
|
let mut wrapper = MigrationHarnessWrapper {
|
||||||
conn,
|
conn,
|
||||||
|
options,
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
diff_checked_migration_name: options
|
diff_checked_migration_name: options
|
||||||
.enable_diff_check
|
.enable_diff_check
|
||||||
|
|
|
@ -138,9 +138,6 @@ enum MigrationSubcommand {
|
||||||
|
|
||||||
/// Placing the main function in lib.rs allows other crates to import it and embed Lemmy
|
/// Placing the main function in lib.rs allows other crates to import it and embed Lemmy
|
||||||
pub async fn start_lemmy_server(args: CmdArgs) -> LemmyResult<()> {
|
pub async fn start_lemmy_server(args: CmdArgs) -> LemmyResult<()> {
|
||||||
// Print version number to log
|
|
||||||
println!("Starting Lemmy v{VERSION}");
|
|
||||||
|
|
||||||
if let Some(CmdSubcommand::Migration {
|
if let Some(CmdSubcommand::Migration {
|
||||||
subcommand,
|
subcommand,
|
||||||
all,
|
all,
|
||||||
|
@ -150,7 +147,8 @@ pub async fn start_lemmy_server(args: CmdArgs) -> LemmyResult<()> {
|
||||||
let mut options = match subcommand {
|
let mut options = match subcommand {
|
||||||
MigrationSubcommand::Run => schema_setup::Options::default().run(),
|
MigrationSubcommand::Run => schema_setup::Options::default().run(),
|
||||||
MigrationSubcommand::Revert => schema_setup::Options::default().revert(),
|
MigrationSubcommand::Revert => schema_setup::Options::default().revert(),
|
||||||
};
|
}
|
||||||
|
.print_output();
|
||||||
|
|
||||||
if !all {
|
if !all {
|
||||||
options = options.limit(number);
|
options = options.limit(number);
|
||||||
|
@ -161,6 +159,9 @@ pub async fn start_lemmy_server(args: CmdArgs) -> LemmyResult<()> {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Print version number to log
|
||||||
|
println!("Starting Lemmy v{VERSION}");
|
||||||
|
|
||||||
// return error 503 while running db migrations and startup tasks
|
// return error 503 while running db migrations and startup tasks
|
||||||
let mut startup_server_handle = None;
|
let mut startup_server_handle = None;
|
||||||
if !args.disable_http_server {
|
if !args.disable_http_server {
|
||||||
|
|
Loading…
Reference in a new issue