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" )
@@ -38,7 +40,7 @@ def add_snippet_names(cr, table, column, snippets, select_query):
38
40
_logger .info ("Add snippet names on %s.%s" , table , column )
39
41
cr .execute (select_query )
40
42
41
- it = util . log_progress (cr .fetchall (), _logger , qualifier = "rows" , size = cr .rowcount , log_hundred_percent = True )
43
+ it = log_progress (cr .fetchall (), _logger , qualifier = "rows" , size = cr .rowcount , log_hundred_percent = True )
42
44
43
45
def quote (ident ):
44
46
return quote_ident (ident , cr ._cnx )
@@ -103,11 +105,11 @@ def html_fields(cr):
103
105
"""
104
106
)
105
107
for model , columns in cr .fetchall ():
106
- table = util . table_of_model (cr , model )
107
- if not util . table_exists (cr , table ):
108
+ table = table_of_model (cr , model )
109
+ if not table_exists (cr , table ):
108
110
# an SQL VIEW
109
111
continue
110
- existing_columns = [column for column in columns if util . column_exists (cr , table , column )]
112
+ existing_columns = [column for column in columns if column_exists (cr , table , column )]
111
113
if existing_columns :
112
114
yield table , existing_columns
113
115
@@ -169,7 +171,7 @@ def make_pickleable_callback(callback):
169
171
"""
170
172
callback_filepath = inspect .getfile (callback )
171
173
name = f"_upgrade_{ uuid .uuid4 ().hex } "
172
- mod = sys .modules [name ] = util . import_script (callback_filepath , name = name )
174
+ mod = sys .modules [name ] = import_script (callback_filepath , name = name )
173
175
try :
174
176
return getattr (mod , callback .__name__ )
175
177
except AttributeError :
@@ -257,7 +259,7 @@ def convert_html_columns(cr, table, columns, converter_callback, where_column="I
257
259
"""
258
260
assert "id" not in columns
259
261
260
- converters = {column : "->>'en_US'" if util . column_type (cr , table , column ) == "jsonb" else "" for column in columns }
262
+ converters = {column : "->>'en_US'" if column_type (cr , table , column ) == "jsonb" else "" for column in columns }
261
263
select = ", " .join (f'"{ column } "' for column in columns )
262
264
where = " OR " .join (f'"{ column } "{ converters [column ]} { where_column } ' for column in columns )
263
265
@@ -277,9 +279,9 @@ def convert_html_columns(cr, table, columns, converter_callback, where_column="I
277
279
278
280
matched_count = 0
279
281
converted_count = 0
280
- with ProcessPoolExecutor (max_workers = util . get_max_workers ()) as executor :
282
+ with ProcessPoolExecutor (max_workers = get_max_workers ()) as executor :
281
283
convert = Convertor (converters , converter_callback )
282
- for query in util . log_progress (split_queries , logger = _logger , qualifier = f"{ table } updates" ):
284
+ for query in log_progress (split_queries , logger = _logger , qualifier = f"{ table } updates" ):
283
285
cr .execute (query )
284
286
for data in executor .map (convert , cr .fetchall ()):
285
287
matched_count += 1
0 commit comments