mirror of
https://github.com/Portabase/agent.git
synced 2026-09-10 01:57:10 +00:00
fix(postgres): match real pg_restore -l schema line in toc_creates_public_schema
This commit is contained in:
@@ -15,8 +15,12 @@ use crate::services::backup::logger::JobLogger;
|
||||
use crate::services::config::DatabaseConfig;
|
||||
|
||||
pub(crate) fn toc_creates_public_schema(toc: &str) -> bool {
|
||||
toc.lines()
|
||||
.any(|l| l.contains(" SCHEMA ") && l.trim_end().ends_with(" public"))
|
||||
toc.lines().any(|l| {
|
||||
l.split(" SCHEMA - ")
|
||||
.nth(1)
|
||||
.and_then(|rest| rest.split_whitespace().next())
|
||||
== Some("public")
|
||||
})
|
||||
}
|
||||
|
||||
pub(crate) struct PreparedArchive {
|
||||
|
||||
@@ -941,9 +941,11 @@ mod toc_tests {
|
||||
|
||||
#[test]
|
||||
fn toc_public_schema_detection() {
|
||||
let with = "123; 2615 12345 SCHEMA - public";
|
||||
let without = "200; 1259 12346 TABLE devschema users devuser";
|
||||
let with = "215; 2615 2200 SCHEMA - public pg_database_owner";
|
||||
let without_table = "200; 1259 12346 TABLE devschema users devuser";
|
||||
let without_similar_schema = "216; 2615 2201 SCHEMA - publicish someowner";
|
||||
assert!(toc_creates_public_schema(with));
|
||||
assert!(!toc_creates_public_schema(without));
|
||||
assert!(!toc_creates_public_schema(without_table));
|
||||
assert!(!toc_creates_public_schema(without_similar_schema));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user