dbInit handle the global database initialization. Panics if an error occurs, since it points to something going terribly wrong.
(dEnv *env.DoltEnv, cfg Config)
| 134 | // dbInit handle the global database initialization. Panics if an error occurs, since it points to something going |
| 135 | // terribly wrong. |
| 136 | func dbInit(dEnv *env.DoltEnv, cfg Config) { |
| 137 | globalDatabase = Database{ |
| 138 | rolesByName: make(map[string]RoleID), |
| 139 | rolesByID: make(map[RoleID]Role), |
| 140 | databasePrivileges: NewDatabasePrivileges(), |
| 141 | schemaPrivileges: NewSchemaPrivileges(), |
| 142 | tablePrivileges: NewTablePrivileges(), |
| 143 | sequencePrivileges: NewSequencePrivileges(), |
| 144 | routinePrivileges: NewRoutinePrivileges(), |
| 145 | roleMembership: NewRoleMembership(), |
| 146 | } |
| 147 | globalLock = &sync.RWMutex{} |
| 148 | if dEnv != nil { |
| 149 | if _, ok := dEnv.FS.(*filesys.InMemFS); !ok { |
| 150 | if cfg != nil && len(cfg.AuthFilePath()) > 0 { |
| 151 | authFileName = cfg.AuthFilePath() |
| 152 | } |
| 153 | fileSystem = dEnv.FS |
| 154 | authData, err := fileSystem.ReadFile(authFileName) |
| 155 | if os.IsNotExist(err) { |
| 156 | dbInitDefault() |
| 157 | if err = dbInitCreateAuthDirectory(authFileName); err != nil { |
| 158 | panic(err) |
| 159 | } |
| 160 | if err = fileSystem.WriteFile(authFileName, globalDatabase.serialize(), 0644); err != nil { |
| 161 | panic(err) |
| 162 | } |
| 163 | } else if err != nil { |
| 164 | panic(err) |
| 165 | } else if err = globalDatabase.deserialize(authData); err != nil { |
| 166 | panic(err) |
| 167 | } |
| 168 | } else { |
| 169 | dbInitDefault() |
| 170 | } |
| 171 | } else { |
| 172 | dbInitDefault() |
| 173 | } |
| 174 | } |
| 175 | |
| 176 | // dbInitDefault initializes the database and fills it with default users for testing. |
| 177 | func dbInitDefault() { |
no test coverage detected