Files
cloudpods/pkg/compute/models/initdb.go
2026-03-20 01:36:29 +08:00

97 lines
2.3 KiB
Go

// Copyright 2019 Yunion
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package models
import (
"time"
"yunion.io/x/log"
"yunion.io/x/onecloud/pkg/cloudcommon/db"
"yunion.io/x/onecloud/pkg/cloudcommon/db/proxy"
"yunion.io/x/onecloud/pkg/compute/models/baremetal"
)
func InitDB() error {
for _, manager := range []db.IModelManager{
/*
* Important!!!
* initialization order matters, do not change the order
*/
db.TenantCacheManager,
db.Metadata,
proxy.ProxySettingManager,
QuotaManager,
CloudaccountManager,
CloudproviderManager,
CloudregionManager,
ZoneManager,
VpcManager,
WireManager,
StorageManager,
SecurityGroupManager,
NetworkManager,
NetworkAddressManager,
NetworkIpMacManager,
GuestManager,
GuestnetworkManager,
HostManager,
HostDmesgLogManager,
LoadbalancerCertificateManager,
LoadbalancerAclManager,
LoadbalancerManager,
LoadbalancerListenerManager,
LoadbalancerListenerRuleManager,
LoadbalancerBackendGroupManager,
LoadbalancerBackendManager,
LoadbalancerClusterManager,
SchedtagManager,
DynamicschedtagManager,
ServerSkuManager,
ElasticcacheSkuManager,
ExternalProjectManager,
CachedimageManager,
StoragecachedimageManager,
NetworkinterfacenetworkManager,
DBInstanceNetworkManager,
DBInstanceAccountManager,
DBInstanceDatabaseManager,
SnapshotPolicyDiskManager,
AccessGroupManager,
AccessGroupRuleManager,
GroupnetworkManager,
ElasticcacheManager,
baremetal.BaremetalProfileManager,
} {
now := time.Now()
err := manager.InitializeData()
if err != nil {
log.Errorf("%s initializeData fail %s", manager.Keyword(), err)
}
if cost := time.Now().Sub(now); cost > time.Duration(time.Second)*15 {
log.Infof("%s initializeData cost %s", manager.Keyword(), cost.Round(time.Second))
}
}
return nil
}