Сообщение #1
09 января 2018, 17:52
|
Перенос базы на другой сервер
Всем известная проблема в Odoo, невозможность «по простому» перенести базу на другой сервер.
Одно из решений описано здесь www.swe-notes.ru/post/odoo_ha/
Здесь описано, как хранить сессии с разных серверов Odoo на redis сервере и сохранить все attachment в базе
Необходимо из репозитария установить ir_attachment_force_storage и настроить redis сервер c python redis клиент на серверах с Odoo.
Для Odoo 11 подправить файлы:
в пакете redis_session_store
__init__.py
from. import http
http.py
from odoo.addons.redis_session_store.sessionstore import RedisSessionStore
sessionstore.py
import pickle as cPickle
def get_session_key(self, sid):
if isinstance(sid,bytes):
sid = sid.decode('utf-8')
в пакете ir_attachment_force_storage
__init__.py
from. import models
Что-бы исключить всякую возможность чтения attachment c диска в models.py:
class IrAttachmentWithForce(models.Model):
_inherit = 'ir.attachment'
.model
def _file_read(self, fname, bin_size=False):
return ""
в odoo.conf добавить строки:
use_redis = True
redis_host= ip redis сервера
Если все заработало на основном сервере, то делаем с него backup базы и восстанавливаем ее на нужном сервере, который работает с установленным redis сервером.
Одно из решений описано здесь www.swe-notes.ru/post/odoo_ha/
Здесь описано, как хранить сессии с разных серверов Odoo на redis сервере и сохранить все attachment в базе
Необходимо из репозитария установить ir_attachment_force_storage и настроить redis сервер c python redis клиент на серверах с Odoo.
Для Odoo 11 подправить файлы:
в пакете redis_session_store
__init__.py
from. import http
http.py
from odoo.addons.redis_session_store.sessionstore import RedisSessionStore
sessionstore.py
import pickle as cPickle
def get_session_key(self, sid):
if isinstance(sid,bytes):
sid = sid.decode('utf-8')
в пакете ir_attachment_force_storage
__init__.py
from. import models
Что-бы исключить всякую возможность чтения attachment c диска в models.py:
class IrAttachmentWithForce(models.Model):
_inherit = 'ir.attachment'
.model
def _file_read(self, fname, bin_size=False):
return ""
в odoo.conf добавить строки:
use_redis = True
redis_host= ip redis сервера
Если все заработало на основном сервере, то делаем с него backup базы и восстанавливаем ее на нужном сервере, который работает с установленным redis сервером.
Последний раз редактировал пользователь
aladkoi
-
09 января 2018, 18:44