Exemple #1
0
        /// <summary>
        /// 初始化数据库
        /// </summary>
        private void InitializeDatabase(bool rebuild)
        {
            DbFactory.DbConnectionString = SystemConfig.Current.DbConnectionString;
            DbFactory.DefaultDbName      = SystemConfig.Current.DefaultDbName;

            ColumnConfiguration[] colCfgsObj = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ObjectFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.ObjectFieldOwner, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ObjectFieldParentId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ObjectFieldName, BlazeDbType.STRING),
                new ColumnConfiguration(TableString.ObjectFieldComment, BlazeDbType.STRING)
            };
            ColumnConfiguration[] colCfgsUser = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.UserFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.UserFieldUserName, BlazeDbType.SHORT_STRING, false, true),
                new ColumnConfiguration(TableString.UserFieldRealName, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.UserFieldPassword, BlazeDbType.STRING)
            };
            ColumnConfiguration[] colCfgsGroup = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.UserGroupFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.UserGroupFieldGroupName, BlazeDbType.SHORT_STRING, false, true)
            };
            ColumnConfiguration[] colCfgsUserGroup = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.UserInGroupFieldUserId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.UserInGroupFieldGroupId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.UserInGroupFieldEstablishDatetime, BlazeDbType.DATETIME)
            };
            ColumnConfiguration[] colCfgsAce = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.AceFieldAceId, BlazeDbType.INT4, false, true, true, true, null),
                new ColumnConfiguration(TableString.AceFieldObjectId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.AceFieldOperatorId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.AceFieldOperation, BlazeDbType.INT4),
            };
            ColumnConfiguration[] colCfgsGameServer = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.GameServerFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.GameServerFieldNetAddress, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldGameDir, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.GameServerFieldLordPort, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GameServerFieldMaxPlayer, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GameServerFieldIntranetMask, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldInternetMask, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldPaysysIp, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldPaysysPort, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GameServerFieldPaysysLoginName, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldPaysysLoginPwd, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.GameServerFieldDbHost, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldDbName, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldDbLoginName, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldDbLoginPwd, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.GameServerFieldDbBackupDir, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.GameServerFieldFSEyeIp, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.GameServerFieldFSEyePort, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GameServerFieldHasBeenConfigGuard, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GameServerFieldServerType, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GameServerFieldCfgString, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.GameServerFieldFtpDownloadServer, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GameServerFieldGmcIp, BlazeDbType.STRING),
                new ColumnConfiguration(TableString.GameServerFieldGmcAccount, BlazeDbType.STRING)
            };
            ColumnConfiguration[] colCfgsServerGroup = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ServerGroupFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.ServerGroupFieldType, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerGroupFieldGroupEnable, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerGroupFieldMaxPlayers, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerGroupFieldMaxPlayersLogTime, BlazeDbType.DATETIME),
                new ColumnConfiguration(TableString.ServerGroupFieldCabinet, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.ServerGroupFieldGroupVersion, BlazeDbType.STRING)
            };
            ColumnConfiguration[] colCfgsServerRegion = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ServerRegionFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.ServerRegionFieldMaxPlayers, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerRegionFieldMaxPlayersLogTime, BlazeDbType.DATETIME),
                new ColumnConfiguration(TableString.ServerRegionFieldRegionName, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.ServerRegionFieldRegionType, BlazeDbType.INT2)
            };
            ColumnConfiguration[] colCfgsGameLog = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.GameLogFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.GameLogFieldGameServerId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GameLogFieldDate, BlazeDbType.DATE),
                new ColumnConfiguration(TableString.GameLogFieldTotalMoney, BlazeDbType.INT8),
                new ColumnConfiguration(TableString.GameLogFieldTotalMoneyInBox, BlazeDbType.INT8)
            };
            ColumnConfiguration[] colCfgsServerPlugIn = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ServerPlugInFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.ServerPlugInFieldGameServerId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerPlugInFieldPlugInGuid, BlazeDbType.STRING),
                new ColumnConfiguration(TableString.ServerPlugInFieldParameter1, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerPlugInFieldParameter2, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerPlugInFieldParameter3, BlazeDbType.STRING),
                new ColumnConfiguration(TableString.ServerPlugInFieldPlugInName, BlazeDbType.STRING)
            };
            ColumnConfiguration[] strategy = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.StrategyFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.StrategyFieldEvent, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.StrategyFieldAutomation, BlazeDbType.BLOB),
                new ColumnConfiguration(TableString.StrategyFieldEnabled, BlazeDbType.INT2)
            };
            ColumnConfiguration[] scheduledTask = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ScheduledTaskFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.ScheduledTaskFieldTaskData, BlazeDbType.BLOB)
            };
            //ColumnConfiguration[] task = new ColumnConfiguration[] {
            //    new ColumnConfiguration( TableString.TaskFieldId, BlazeDbType.INT4, true ),
            //    new ColumnConfiguration( TableString.TaskFieldName, BlazeDbType.STRING),
            //    new ColumnConfiguration( TableString.TaskFieldAutomation, BlazeDbType.BLOB),
            //    new ColumnConfiguration( TableString.TaskFieldInterval,BlazeDbType.INT4),
            //    new ColumnConfiguration( TableString.TaskFieldPeriodUnit, BlazeDbType.INT4),
            //    new ColumnConfiguration( TableString.TaskFieldStart, BlazeDbType.DATETIME),
            //    new ColumnConfiguration( TableString.TaskFieldEnd, BlazeDbType.DATETIME),
            //    new ColumnConfiguration( TableString.TaskFieldSelectedDay, BlazeDbType.STRING),
            //    new ColumnConfiguration( TableString.TaskFieldSelectedMonth, BlazeDbType.STRING),
            //    new ColumnConfiguration( TableString.TaskFieldRepeatPeriod, BlazeDbType.INT4),
            //    new ColumnConfiguration( TableString.TaskFieldRepeatPersistenceTime, BlazeDbType.INT4),
            //    new ColumnConfiguration( TableString.StrategyFieldEnabled, BlazeDbType.INT2)
            //};
            ColumnConfiguration[] updateServer = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.UpdateServerFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.UpdateServerFieldAddress, BlazeDbType.SHORT_STRING),
                new ColumnConfiguration(TableString.UpdateServerFieldPort, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.UpdateServerFieldUsername, BlazeDbType.STRING),
                new ColumnConfiguration(TableString.UpdateServerFieldPassword, BlazeDbType.STRING),
                new ColumnConfiguration(TableString.UpdateServerFieldLiteral, BlazeDbType.STRING),
                new ColumnConfiguration(TableString.UpdateServerFieldUpdateServerType, BlazeDbType.INT2)
            };
            ColumnConfiguration[] playerCount = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.PlayerCountFieldServerId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.PlayerCountFieldRecordTime, BlazeDbType.DATETIME, true),
                new ColumnConfiguration(TableString.PlayerCountFieldMaxPlayerCount, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.PlayerCountFieldMinPlayerCount, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.PlayerCountFieldAveragePlayerCount, BlazeDbType.INT2)
            };

            ColumnConfiguration[] gmOpLog = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.GMOpLogFieldId, BlazeDbType.INT4, false, true, true, true, null),
                new ColumnConfiguration(TableString.GMOpLogFieldUserId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GMOpLogFieldOperation, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.GMOpLogFieldTarget, BlazeDbType.BLOB),
                new ColumnConfiguration(TableString.GMOpLogFieldServerId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.GMOpLogFieldDescription, BlazeDbType.BLOB),
                new ColumnConfiguration(TableString.GMOpLogFieldLogTime, BlazeDbType.DATETIME),
                new ColumnConfiguration(TableString.GMOpLogFieldTargetType, BlazeDbType.INT2)
            };

            ColumnConfiguration[] accountInfo = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.AccountInfoFieldId, BlazeDbType.INT4, false, true, true, true, null),
                new ColumnConfiguration(TableString.AccountInfoFieldName, BlazeDbType.STRING, false, true, false, false, null),
                new ColumnConfiguration(TableString.AccountInfoFieldPassword, BlazeDbType.STRING)
            };

            ColumnConfiguration[] ibShop = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.IbShopFieldId, BlazeDbType.INT4, false, true, true, true, null),
                new ColumnConfiguration(TableString.IbShopFieldTimeStamp, BlazeDbType.DATETIME),
                new ColumnConfiguration(TableString.IbShopFieldScript, BlazeDbType.BLOB)
            };

            ColumnConfiguration[] batchTask = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.BatchTaskId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.BatchTaskAutomation, BlazeDbType.BLOB),
                new ColumnConfiguration(TableString.BatchTaskStep, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.BatchTaskServerIds, BlazeDbType.BLOB)
            };

            ColumnConfiguration[] serverEvent = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ServerEventFieldServerId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.ServerEventFieldEventTime, BlazeDbType.DATETIME, true),
                new ColumnConfiguration(TableString.ServerEventFieldEventType, BlazeDbType.INT2)
            };

            ColumnConfiguration[] serverOperationLog = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ServerOperationLogFieldId, BlazeDbType.INT8, false, true, true, true, null),
                new ColumnConfiguration(TableString.ServerOperationLogFieldOperationId, BlazeDbType.INT8),
                new ColumnConfiguration(TableString.ServerOperationLogFieldUserId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerOperationLogFieldServerOrGroup, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerOperationLogFieldTargetId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerOperationLogFieldOperationType, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerOperationLogFieldOperationResult, BlazeDbType.INT2),
                new ColumnConfiguration(TableString.ServerOperationLogFieldDescription, BlazeDbType.LONG_STRING),
                new ColumnConfiguration(TableString.ServerOperationLogFieldLogTime, BlazeDbType.DATETIME),
                new ColumnConfiguration(TableString.ServerOperationLogFieldFatherRegion, BlazeDbType.LONG_STRING)
            };

            ColumnConfiguration[] serverMap = new ColumnConfiguration[] {
                new ColumnConfiguration(TableString.ServerMapFieldId, BlazeDbType.INT4, true),
                new ColumnConfiguration(TableString.ServerMapFieldParentId, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerMapFieldName, BlazeDbType.STRING),
                new ColumnConfiguration(TableString.ServerMapFieldMapType, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerMapFieldIndex, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerMapFieldFlag, BlazeDbType.INT4),
                new ColumnConfiguration(TableString.ServerMapFieldMapServerId, BlazeDbType.INT4)
            };

            DbConfiguration dbCfg = new DbConfiguration(
                DbFactory.DefaultDbName,
                new TableConfiguration[] {
                new TableConfiguration(TableString.ObjectTableName, colCfgsObj),
                new TableConfiguration(TableString.UserTableName, colCfgsUser),
                new TableConfiguration(TableString.UserGroupTableName, colCfgsGroup),
                new TableConfiguration(TableString.UserInGroupTableName, colCfgsUserGroup),
                new TableConfiguration(TableString.AceTableName, colCfgsAce),
                new TableConfiguration(TableString.GameServerTableName, colCfgsGameServer),
                new TableConfiguration(TableString.ServerGroupTableName, colCfgsServerGroup),
                new TableConfiguration(TableString.ServerRegionTableName, colCfgsServerRegion),
                new TableConfiguration(TableString.GameLogTableName, colCfgsGameLog),
                new TableConfiguration(TableString.ServerPlugInTableName, colCfgsServerPlugIn),
                new TableConfiguration(TableString.StrategyTableName, strategy),
                new TableConfiguration(TableString.ScheduledTaskTableName, scheduledTask),
                new TableConfiguration(TableString.UpdateServerTableName, updateServer),
                new TableConfiguration(TableString.PlayerCountTableName, playerCount),
                new TableConfiguration(TableString.GMOpLogTableName, gmOpLog),
                new TableConfiguration(TableString.AccountInfoTableName, accountInfo),
                new TableConfiguration(TableString.IbShopTableName, ibShop),
                new TableConfiguration(TableString.BatchTaskTableName, batchTask),
                new TableConfiguration(TableString.ServerEventTableName, serverEvent),
                new TableConfiguration(TableString.ServerOperationLogTableName, serverOperationLog),
                new TableConfiguration(TableString.ServerMapTableName, serverMap)
            }
                );

            IBlazeDatabase db = DbFactory.GetDatabase();

            db.InitDatabase(dbCfg, rebuild);
        }