odoo 创建初始数据库 切换当前数据库

from odoo import models, fields, api, sql_db, tools
from contextlib import closing
from odoo.exceptions import ValidationError
from odoo.service.db import _initialize_db


def change_current_database(to_database_name):
    """
    切换当前数据库
    :param to_database_name: 目标数据库
    :return:
    """
    tools.config['db_name'] = to_database_name


def create_empty_database(database_name):
    """
    根据database_name 创建空数据库, 参考函数odoo.service.db._create_empty_database
    :param database_name: 创建空数据库名
    :return:
    """
    db = sql_db.db_connect('postgres')
    with closing(db.cursor()) as cr:
        chosen_template = tools.config['db_template']
        cr.execute("SELECT datname FROM pg_database WHERE datname = %s",
                   (database_name,), log_exceptions=False)
        if cr.fetchall():
            return False
        else:
            cr.autocommit(True)  # avoid transaction block
            collate = "LC_COLLATE 'C'" if chosen_template == 'template0' else ""
            cr.execute(
                """CREATE DATABASE "%s" ENCODING 'unicode' %s TEMPLATE "%s" """ %
                (database_name, collate, chosen_template)
            )
            return True


def create_odoo_database(database_name):
    """
    创建有odoo初始数据的数据库
    :param database_name:
    :return:
    """
    if create_empty_database(database_name):
        _initialize_db(
            id,
            db_name=database_name,
            demo=False,
            lang=None,
            user_password='admin',
            login='admin',
            country_code=None,
            phone=None
        )
    else:
        return False

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司7个岗位
点赞 评论 收藏
分享
想进开水团喝开水:哦 给我一个 就算你真拿到牛友也会为你开心的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务