'Will open already existing database
:param path: path with database to open'

def open(self, path=None):

    if (self.opened is True):
        raise DatabaseConflict('Already    opened')
    if path:
        self.path = path
    if (not self.path):
        raise PreconditionsException('No    path    specified')
    if (not os.path.exists(self.path)):
        raise DatabasePathException("Can't    open    database")
    self.indexes = []
    self.id_ind = None
    self.indexes_names = {}
    self._read_indexes()
    if (not ('id' in self.indexes_names)):
        raise PreconditionsException('There    must    be    `id`    index!')
    for index in self.indexes:
        index.open_index()
    self.indexes.sort(key=(lambda ind: ind._order))
    self.__set_main_storage()
    self.__compat_things()
    self.opened = True
    return True
