3

odoo インストールを 8.0 から 9.0 にアップグレードしようとしています。これまでに行ったことは次のとおりです。

  • 本番システムから odoo データベースをバックアップします
  • 現在のシステムにテストとしてバックアップDBをインストールしました
  • 自分のシステムのフォルダーに 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'

データベースをアップグレードするために従わなければならない手順はありますか、それともすべて手動で行う必要がありますか? はいの場合、どうすればよいですか?特定の列がデータベースに存在しないため、明らかに失敗しました。しかし、私が恐れているので、更新スクリプトはありますか?これを変更すると、次のエラーが待っています。

前もって感謝します。

4

3 に答える 3

5

このリンクにアクセスして、odoo 社にその作業を依頼することができます 。自分でできる場合は、その方法に関するドキュメント https://doc.therp.nl/openupgrade/intro.htmlを参照してください。

オプション 2: pgadmin (postgresql gui ツール) を使用できます。データベース名を選択するだけで、上部に sql が有効になっていることが表示されます。それをクリックし、sql クエリを発行してすべてのデータを表示します (必要なテーブル名を知っている必要があります)。取得) その後、エクスポートできます。エクスポートされたファイルには、列見出しを持つすべてのデータが含まれています。odoo9 DB に従って列を再配置する必要がある場合があります。完了したら、odoo9 データベースを選択し、インポートするテーブル名を右クリックします。しばらく時間がかかる場合があり、「データが正常にインポートされました」というメッセージが表示されます。

于 2015-10-26T12:01:51.417 に答える
3

Githubで答えを見つけました。

秘訣は、テーブルのデフォルト値を持つtransientというフィールドを作成することです。Booleanfalseir_model

予想どおり、データベースには調整が必要な他の問題があるため、これは完全な解決策ではありません。

于 2015-10-26T01:38:26.337 に答える