Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -126,13 +126,14 @@ class PostgresManager:
|
|
| 126 |
def _should_skip_statement(self, stmt: str) -> bool:
|
| 127 |
"""
|
| 128 |
Devuelve True si el statement NO debe ejecutarse (grants, owner, create db, etc.).
|
|
|
|
| 129 |
"""
|
| 130 |
if not stmt:
|
| 131 |
return True
|
| 132 |
|
| 133 |
upper = stmt.upper().strip()
|
| 134 |
|
| 135 |
-
# Statements que
|
| 136 |
skip_prefixes = (
|
| 137 |
"SET ",
|
| 138 |
"RESET ",
|
|
@@ -140,14 +141,19 @@ class PostgresManager:
|
|
| 140 |
"COMMENT ON EXTENSION",
|
| 141 |
"COMMENT ON SCHEMA",
|
| 142 |
"COMMENT ON DATABASE",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 143 |
"CREATE DATABASE",
|
| 144 |
"ALTER DATABASE",
|
| 145 |
"DROP DATABASE",
|
| 146 |
"CREATE EXTENSION",
|
| 147 |
"ALTER EXTENSION",
|
| 148 |
"DROP EXTENSION",
|
| 149 |
-
"CREATE SCHEMA",
|
| 150 |
-
"ALTER SCHEMA",
|
| 151 |
"REVOKE ",
|
| 152 |
"GRANT ",
|
| 153 |
"ALTER ROLE",
|
|
@@ -165,18 +171,22 @@ class PostgresManager:
|
|
| 165 |
if upper.startswith(skip_prefixes):
|
| 166 |
return True
|
| 167 |
|
| 168 |
-
#
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
return True
|
| 181 |
|
| 182 |
return False
|
|
|
|
| 126 |
def _should_skip_statement(self, stmt: str) -> bool:
|
| 127 |
"""
|
| 128 |
Devuelve True si el statement NO debe ejecutarse (grants, owner, create db, etc.).
|
| 129 |
+
Filtro universal para dumps PostgreSQL (Neon, Pagila, etc.).
|
| 130 |
"""
|
| 131 |
if not stmt:
|
| 132 |
return True
|
| 133 |
|
| 134 |
upper = stmt.upper().strip()
|
| 135 |
|
| 136 |
+
# 1) Statements globales / de administraci贸n que SIEMPRE ignoramos
|
| 137 |
skip_prefixes = (
|
| 138 |
"SET ",
|
| 139 |
"RESET ",
|
|
|
|
| 141 |
"COMMENT ON EXTENSION",
|
| 142 |
"COMMENT ON SCHEMA",
|
| 143 |
"COMMENT ON DATABASE",
|
| 144 |
+
"COMMENT ON COLLATION",
|
| 145 |
+
"COMMENT ON CONVERSION",
|
| 146 |
+
"COMMENT ON LANGUAGE",
|
| 147 |
+
"COMMENT ON TEXT SEARCH",
|
| 148 |
+
"COMMENT ON FOREIGN",
|
| 149 |
"CREATE DATABASE",
|
| 150 |
"ALTER DATABASE",
|
| 151 |
"DROP DATABASE",
|
| 152 |
"CREATE EXTENSION",
|
| 153 |
"ALTER EXTENSION",
|
| 154 |
"DROP EXTENSION",
|
| 155 |
+
"CREATE SCHEMA", # no queremos recrear schemas globales
|
| 156 |
+
"ALTER SCHEMA",
|
| 157 |
"REVOKE ",
|
| 158 |
"GRANT ",
|
| 159 |
"ALTER ROLE",
|
|
|
|
| 171 |
if upper.startswith(skip_prefixes):
|
| 172 |
return True
|
| 173 |
|
| 174 |
+
# 2) Cualquier cosa que toque OWNER / AUTHORIZATION la ignoramos
|
| 175 |
+
owner_markers = (
|
| 176 |
+
" OWNER TO ",
|
| 177 |
+
" OWNER ",
|
| 178 |
+
"AUTHORIZATION POSTGRES",
|
| 179 |
+
"AUTHORIZATION PUBLIC",
|
| 180 |
+
"AUTHORIZATION CURRENT_USER",
|
| 181 |
+
"AUTHORIZATION \"POSTGRES\"",
|
| 182 |
+
)
|
| 183 |
+
if any(marker in upper for marker in owner_markers):
|
| 184 |
+
return True
|
| 185 |
+
|
| 186 |
+
# 3) Grants / revokes expl铆citos a postgres o public (aunque no empiecen por GRANT/REVOKE)
|
| 187 |
+
if " TO POSTGRES" in upper or " FROM POSTGRES" in upper:
|
| 188 |
+
return True
|
| 189 |
+
if " TO PUBLIC" in upper or " FROM PUBLIC" in upper:
|
| 190 |
return True
|
| 191 |
|
| 192 |
return False
|