text: # coding=utf-8
  import sys
  import os
  import configparser
  
  from sqlalchemy.exc import ProgrammingError
  
  from Crud.core import Conexao, Base
  from Crud.Models import *
  
  
  class CreateDb(object):
      def __init__(self, dbhandler="", DbHost="", DbName="", DbUser="",
                   DbPassword="", conecta="", erro=""):
          self.DbHost = DbHost
          self.DbName = DbName
          self.DbUser = DbUser
          self.DbPassword = DbPassword
          self.conecta = conecta
          self.erro = erro
          self.dbhandler = dbhandler
  
          # Caminho absoluto config.ini
          self.path = os.path.abspath(os.path.dirname(sys.argv[0]))
          config = configparser.ConfigParser()
          config.sections()
  
          # Buscando Dados config.ini
          if config.read(os.path.join(self.path, 'config.ini')):
              self.DbHost = config['DEFAULT']['DbHost']
              self.DbName = config['DEFAULT']['DbName']
              self.DbUser = config['DEFAULT']['DbUser']
              self.DbPassword = config['DEFAULT']['DbPassword']
  
      def createDB(self):
  
          # Caso banco não exista, Cria
          import mysql.connector
          try:
              conn = mysql.connector.connect(
                  user=self.DbUser, password=self.DbPassword, host=self.DbHost)
              cursor = conn.cursor()
              cursor.execute('SET sql_notes = 0 ;')
              cursor.execute("create database IF NOT EXISTS %s" %
                             self.DbName)
              # tabelas = CriarTabelas()
              # self.tabelas()
  
          except mysql.connector.Error as err:
              if err.errno == mysql.connector.errorcode.ER_ACCESS_DENIED_ERROR:
                  self.erro = 1  # Erro User e Senha
              elif err.errno == mysql.connector.errorcode.ER_BAD_DB_ERROR:
                  self.erro = 2  # erro banco de dados inexistente
              else:
                  self.erro == err
  
      def tabelas(self):
          conecta = Conexao()
          try:
              Base.metadata.create_all(conecta.engine)
  
              # Sessao
              conecta = Conexao()
              sessao = conecta.Session()
              sessao.add_all([
                  StatusPagamento(id=1, status_pagamento='CONCLUÍDO'),
                  StatusPagamento(id=2, status_pagamento='PENDENTE'),
                  CatAReceber(id=1, categoria_a_receber='Venda'),
                  CatAPagar(id=1, categoria_a_pagar='Compra'),
                  FormaPagamento(id=1, forma_pagamento='Dinheiro'),
                  FormaPagamento(id=2, forma_pagamento='Cartão'),
                  StatusEntrega(id=1, status_entrega='ENTREGUE'),
                  StatusEntrega(id=2, status_entrega='PENDENTE'),
                  Empresa(id=1, titulo='Titulo', subtitulo='Subtitulo'),
                  Nivel(id=1, nivel='Vendedor'),
                  Nivel(id=2, nivel='Compras'),
                  Nivel(id=3, nivel='Financeiro'),
                  Nivel(id=4, nivel='Administrador')
              ])
  
              sessao.commit()
  
              sessao.add(Usuarios(id=1, usuario='admin',
                           senha='admin', nivel=4, ativo=1))
  
              sessao.commit()
  
          except Exception as e:
              print("ERRO: "+e)
              pass
  