Как обновить базу данных odoo 8 до odoo 9?

Я пытаюсь обновить установку odoo с 8.0 до 9.0. На данный момент я сделал следующее:

  • Резервное копирование базы данных odoo из производственной системы
  • Установил резервную БД в качестве теста в моей текущей системе
  • Скопировал папку odoo в папку в моей системе
  • Проверил, все ли работает. Оно работает!
  • Обновлено до последней версии v8.0, все еще работает
  • Сделал git checkout 9.0, за которым следует git pull.
  • Запустил odoo 9.0 командой ./openerp-server -d testDB -u all

Эта команда прерывается со следующей ошибкой и не обновляет мою базу данных:

LINE 1: select model, transient from ir_model where state='manual'
                      ^
, in query select model, transient from ir_model where state=%s
 2015-10-26 00:37:29,823 4501 CRITICAL testDB openerp.service.server:
Failed to initialize database `testDB`.
 Traceback (most recent call last):
  File "/opt/odoo/openerp/service/server.py", line 885, in preload_registries
    registry = RegistryManager.new(dbname, update_module=update_module)
File "/opt/odoo/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/opt/odoo/openerp/modules/loading.py", line 279, in load_modules
loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report)
File "/opt/odoo/openerp/modules/loading.py", line 136, in load_module_graph
registry.setup_models(cr, partial=True)
File "/opt/odoo/openerp/modules/registry.py", line 185, in setup_models
cr.execute('select model, transient from ir_model where state=%s', ('manual',))
File "/opt/odoo/openerp/sql_db.py", line 139, in wrapper
   return f(self, *args, **kwargs)
File "/opt/odoo/openerp/sql_db.py", line 215, in execute
   res = self._obj.execute(query, params)

ProgrammingError: column "transient" does not exist
LINE 1: select model, transient from ir_model where state='manual'

Есть ли какие-либо шаги, которые я должен выполнить, чтобы обновить базу данных, или все нужно делать вручную? И если да, что мне делать? Очевидно, это не удалось, потому что конкретный столбец не существует в моей базе данных. Но есть ли какой-либо сценарий обновления, потому что я боюсь, что если я его изменю, меня ждет следующая ошибка.

Заранее спасибо.


person Freddy    schedule 26.10.2015    source источник
comment
Привет, у меня проблема с миграцией odoo. Пожалуйста, проверьте эту ссылку. stackoverflow.com/questions/56470582/   -  person С. Дэлгэрцэцэг    schedule 06.06.2019


Ответы (3)


Вы можете попросить компанию odoo выполнить эту задачу за вас, перейдя по этой ссылке. Но они это сделают. взимать за это деньги. Если вы можете сделать это самостоятельно, вот документация о том, как это сделать, https://doc.therp.nl/openupgrade/intro.html

Вариант 2: мы можем использовать pgadmin (инструмент postgresql gui). Просто выберите имя своей базы данных, и вверху вы увидите, что sql включен, щелкните его и выполните sql-запрос для отображения всех данных (вы должны знать имя таблицы, которую вы хотите retreive) после этого вы можете экспортировать его. Экспортированный файл содержит все данные с заголовками столбцов, нам, возможно, придется переупорядочить столбцы в соответствии с odoo9 DB. Как только это будет сделано, выберите базу данных odoo9, щелкните правой кнопкой мыши имя таблицы, которую вы хотите импортировать данные в и выберите опцию импорта. Это может занять некоторое время, и должно появиться сообщение «данные успешно импортированы».

person Kiran    schedule 26.10.2015
comment
Спасибо за ссылку! Думаю, теперь я разобрался с процессом обновления Odoo. Есть ли у вас опыт обновления с 8.0 до 9.0? У меня только один настраиваемый модуль, а остальные стандартные модули Odoo. - person Freddy; 26.10.2015
comment
Хорошо, я только что узнал, что в настоящее время они работают над сценарием миграции 9.0. Еще раз спасибо за ваш ответ, я отмечу его как правильный, так как это кажется мне правильным путем. - person Freddy; 26.10.2015
comment
Вы также можете использовать какой-нибудь инструмент ETL - person ChesuCR; 27.10.2015
comment
Привет, у меня проблема с миграцией odoo. Пожалуйста, проверьте эту ссылку. stackoverflow.com/questions/56470582/ @Freddy - person С. Дэлгэрцэцэг; 06.06.2019

Я нашел ответ на Github.

Уловка состоит в том, чтобы создать поле с именем transient, которое равно Boolean со значением по умолчанию false в таблице ir_model.

Как я и ожидал, это не полное решение, поскольку есть другие проблемы с базой данных, требующие корректировки.

person Freddy    schedule 26.10.2015

Вы пытаетесь запустить базу данных Odoo 8.0 на Odoo 9.0.

Столбец «переходный» находится в базе кода для 9.0, а не в базе кода 8.0. Следовательно, база данных 8.0 работает на базе кода 9.0. Следовательно, база данных не была обновлена ​​должным образом.

Как указано в предыдущем ответе. Вы можете либо заставить Odoo сделать это, либо сделать это самостоятельно.

person Bhavya    schedule 05.02.2016