stvnnnnnn commited on
Commit
f888f5d
verified
1 Parent(s): c0f2a9e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -15
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 directamente ignoramos
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", # 馃憟 nuevo: no necesitamos crear schemas del dump
150
- "ALTER SCHEMA", # 馃憟 nuevo: ni alterarlos
151
  "REVOKE ",
152
  "GRANT ",
153
  "ALTER ROLE",
@@ -165,18 +171,22 @@ class PostgresManager:
165
  if upper.startswith(skip_prefixes):
166
  return True
167
 
168
- # Ignorar ALTER ... OWNER TO ...
169
- if " OWNER TO " in upper and upper.startswith(
170
- (
171
- "ALTER TABLE",
172
- "ALTER SEQUENCE",
173
- "ALTER DOMAIN",
174
- "ALTER TYPE",
175
- "ALTER SCHEMA",
176
- "ALTER VIEW",
177
- "ALTER MATERIALIZED VIEW",
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