mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-31 04:23:40 +00:00
fix migrations not running in the to block
This commit is contained in:
committed by
Aiden McClelland
parent
6ac87a51e4
commit
f523a68e72
@@ -9,8 +9,8 @@ use std::time::{Duration, Instant};
|
|||||||
|
|
||||||
use color_eyre::eyre::eyre;
|
use color_eyre::eyre::eyre;
|
||||||
use emver::VersionRange;
|
use emver::VersionRange;
|
||||||
use futures::future::{self, BoxFuture};
|
use futures::future::BoxFuture;
|
||||||
use futures::{stream, FutureExt, StreamExt, TryStreamExt};
|
use futures::{FutureExt, StreamExt, TryStreamExt};
|
||||||
use http::header::CONTENT_LENGTH;
|
use http::header::CONTENT_LENGTH;
|
||||||
use http::{Request, Response, StatusCode};
|
use http::{Request, Response, StatusCode};
|
||||||
use hyper::Body;
|
use hyper::Body;
|
||||||
@@ -365,13 +365,13 @@ pub async fn sideload(
|
|||||||
match pde.take() {
|
match pde.take() {
|
||||||
Some(PackageDataEntry::Installed {
|
Some(PackageDataEntry::Installed {
|
||||||
installed,
|
installed,
|
||||||
manifest,
|
|
||||||
static_files,
|
static_files,
|
||||||
|
..
|
||||||
}) => {
|
}) => {
|
||||||
*pde = Some(PackageDataEntry::Updating {
|
*pde = Some(PackageDataEntry::Updating {
|
||||||
install_progress: progress.clone(),
|
install_progress: progress.clone(),
|
||||||
installed,
|
installed,
|
||||||
manifest,
|
manifest: manifest.clone(),
|
||||||
static_files,
|
static_files,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1197,34 +1197,33 @@ pub async fn install_s9pk<R: AsyncRead + AsyncSeek + Unpin>(
|
|||||||
dep_errs.save(&mut tx).await?;
|
dep_errs.save(&mut tx).await?;
|
||||||
|
|
||||||
if let PackageDataEntry::Updating {
|
if let PackageDataEntry::Updating {
|
||||||
installed: prev,
|
installed: prev, ..
|
||||||
manifest: prev_manifest,
|
|
||||||
..
|
|
||||||
} = prev
|
} = prev
|
||||||
{
|
{
|
||||||
let prev_is_configured = prev.status.configured;
|
let prev_is_configured = prev.status.configured;
|
||||||
let prev_migration = prev_manifest
|
let prev_migration = prev
|
||||||
|
.manifest
|
||||||
.migrations
|
.migrations
|
||||||
.to(
|
.to(
|
||||||
ctx,
|
ctx,
|
||||||
version,
|
version,
|
||||||
pkg_id,
|
pkg_id,
|
||||||
&prev_manifest.version,
|
&prev.manifest.version,
|
||||||
&prev_manifest.volumes,
|
&prev.manifest.volumes,
|
||||||
)
|
)
|
||||||
.map(futures::future::Either::Left);
|
.map(futures::future::Either::Left);
|
||||||
let migration = manifest
|
let migration = manifest
|
||||||
.migrations
|
.migrations
|
||||||
.from(
|
.from(
|
||||||
ctx,
|
ctx,
|
||||||
&prev_manifest.version,
|
&prev.manifest.version,
|
||||||
pkg_id,
|
pkg_id,
|
||||||
version,
|
version,
|
||||||
&manifest.volumes,
|
&manifest.volumes,
|
||||||
)
|
)
|
||||||
.map(futures::future::Either::Right);
|
.map(futures::future::Either::Right);
|
||||||
|
|
||||||
let viable_migration = if prev_manifest.version > manifest.version {
|
let viable_migration = if prev.manifest.version > manifest.version {
|
||||||
prev_migration.or(migration)
|
prev_migration.or(migration)
|
||||||
} else {
|
} else {
|
||||||
migration.or(prev_migration)
|
migration.or(prev_migration)
|
||||||
|
|||||||
Reference in New Issue
Block a user