示例#1
0
文件: storage.py 项目: poyashi/optuna
    def _init_version_info_model(self):
        # type: () -> None

        session = self.scoped_session()

        version_info = models.VersionInfoModel.find(session)
        if version_info is not None:
            return

        version_info = models.VersionInfoModel(
            schema_version=models.SCHEMA_VERSION,
            library_version=version.__version__)

        session.add(version_info)
        RDBStorage._commit_with_integrity_check(session)
示例#2
0
    def _init_version_info_model(self):
        # type: () -> None

        session = self.scoped_session()

        version_info = models.VersionInfoModel.find(session)
        if version_info is not None:
            # Terminate transaction explicitly to avoid connection timeout during transaction.
            RDBStorage._commit(session)
            return

        version_info = models.VersionInfoModel(
            schema_version=models.SCHEMA_VERSION, library_version=version.__version__)

        session.add(version_info)
        RDBStorage._commit_with_integrity_check(session)
示例#3
0
    def _check_table_schema_compatibility(self):
        # type: () -> None

        session = self.scoped_session()

        version_info = models.VersionInfoModel.find(session)
        if version_info is not None:
            if version_info.schema_version != models.SCHEMA_VERSION:
                raise RuntimeError(
                    'The runtime optuna version {} is no longer compatible with the table schema '
                    '(set up by optuna {}).'.format(
                        version.__version__, version_info.library_version))
            return

        version_info = models.VersionInfoModel(
            schema_version=models.SCHEMA_VERSION,
            library_version=version.__version__)

        session.add(version_info)
        self._commit_with_integrity_check(session)