feat: run migrations while starting with monolith
just more user friendly
This commit is contained in:
parent
410dca1eef
commit
2e41df9bf3
1 changed files with 7 additions and 3 deletions
10
main.rs
10
main.rs
|
@ -157,14 +157,19 @@ async fn init(args: Args, config: upub::Config) {
|
|||
.await.expect("error connecting to db");
|
||||
|
||||
#[cfg(feature = "migrate")]
|
||||
if matches!(args.command, Mode::Migrate) {
|
||||
if matches!(args.command, Mode::Migrate | Mode::Monolith { bind: _, tasks: _, poll: _ }) {
|
||||
// note that, if running in monolith mode, we want to apply migrations before starting, as a
|
||||
// convenience for quickly spinning up new test instances and to prevent new server admins from
|
||||
// breaking stuff by forgetting to migrate
|
||||
use migrations::MigratorTrait;
|
||||
|
||||
migrations::Migrator::up(&db, None)
|
||||
.await
|
||||
.expect("error applying migrations");
|
||||
|
||||
return;
|
||||
if matches!(args.command, Mode::Migrate) {
|
||||
return; // if migrate, we're done! otherwise keep going
|
||||
}
|
||||
}
|
||||
|
||||
let (tx_wake, rx_wake) = tokio::sync::mpsc::unbounded_channel();
|
||||
|
@ -181,7 +186,6 @@ async fn init(args: Args, config: upub::Config) {
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
// register signal handler only for long-lasting modes, such as server or worker
|
||||
let (tx, rx) = tokio::sync::watch::channel(false);
|
||||
let signals = Signals::new([SIGTERM, SIGINT]).expect("failed registering signal handler");
|
||||
|
|
Loading…
Add table
Reference in a new issue