12
12
from psycopg2 .extras import Json
13
13
14
14
from .exceptions import MigrationError
15
- from odoo .upgrade import util
15
+ from .helpers import table_of_model
16
+ from .misc import import_script , log_progress
17
+ from .pg import column_exists , column_type , get_max_workers , table_exists
16
18
17
19
_logger = logging .getLogger (__name__ )
18
20
utf8_parser = html .HTMLParser (encoding = "utf-8" )
@@ -39,7 +41,7 @@ def add_snippet_names(cr, table, column, snippets, select_query):
39
41
_logger .info ("Add snippet names on %s.%s" , table , column )
40
42
cr .execute (select_query )
41
43
42
- it = util . log_progress (cr .fetchall (), _logger , qualifier = "rows" , size = cr .rowcount , log_hundred_percent = True )
44
+ it = log_progress (cr .fetchall (), _logger , qualifier = "rows" , size = cr .rowcount , log_hundred_percent = True )
43
45
44
46
def quote (ident ):
45
47
return quote_ident (ident , cr ._cnx )
@@ -107,11 +109,11 @@ def html_fields(cr):
107
109
"""
108
110
)
109
111
for model , columns in cr .fetchall ():
110
- table = util . table_of_model (cr , model )
111
- if not util . table_exists (cr , table ):
112
+ table = table_of_model (cr , model )
113
+ if not table_exists (cr , table ):
112
114
# an SQL VIEW
113
115
continue
114
- existing_columns = [column for column in columns if util . column_exists (cr , table , column )]
116
+ existing_columns = [column for column in columns if column_exists (cr , table , column )]
115
117
if existing_columns :
116
118
yield table , existing_columns
117
119
@@ -171,7 +173,7 @@ def make_pickleable_callback(callback):
171
173
"""
172
174
callback_filepath = inspect .getfile (callback )
173
175
name = f"_upgrade_{ uuid .uuid4 ().hex } "
174
- mod = sys .modules [name ] = util . import_script (callback_filepath , name = name )
176
+ mod = sys .modules [name ] = import_script (callback_filepath , name = name )
175
177
try :
176
178
return getattr (mod , callback .__name__ )
177
179
except AttributeError :
@@ -260,7 +262,7 @@ def convert_html_columns(cr, table, columns, converter_callback, where_column="I
260
262
261
263
assert "id" not in columns
262
264
263
- converters = {column : "->>'en_US'" if util . column_type (cr , table , column ) == "jsonb" else "" for column in columns }
265
+ converters = {column : "->>'en_US'" if column_type (cr , table , column ) == "jsonb" else "" for column in columns }
264
266
select = ", " .join (f'"{ column } "' for column in columns )
265
267
where = " OR " .join (f'"{ column } "{ converters [column ]} { where_column } ' for column in columns )
266
268
@@ -280,9 +282,9 @@ def convert_html_columns(cr, table, columns, converter_callback, where_column="I
280
282
281
283
matched_count = 0
282
284
converted_count = 0
283
- with ProcessPoolExecutor (max_workers = util . get_max_workers ()) as executor :
285
+ with ProcessPoolExecutor (max_workers = get_max_workers ()) as executor :
284
286
convert = Convertor (converters , converter_callback )
285
- for query in util . log_progress (split_queries , logger = _logger , qualifier = f"{ table } updates" ):
287
+ for query in log_progress (split_queries , logger = _logger , qualifier = f"{ table } updates" ):
286
288
cr .execute (query )
287
289
for data in executor .map (convert , cr .fetchall ()):
288
290
matched_count += 1
0 commit comments