NewPoolMetadata creates new or opens existing pool metadata database
(dbfile string)
| 64 | |
| 65 | // NewPoolMetadata creates new or opens existing pool metadata database |
| 66 | func NewPoolMetadata(dbfile string) (*PoolMetadata, error) { |
| 67 | db, err := bolt.Open(dbfile, 0600, nil) |
| 68 | if err != nil { |
| 69 | return nil, err |
| 70 | } |
| 71 | |
| 72 | metadata := &PoolMetadata{db: db} |
| 73 | if err := metadata.ensureDatabaseInitialized(); err != nil { |
| 74 | return nil, fmt.Errorf("failed to initialize database: %w", err) |
| 75 | } |
| 76 | |
| 77 | return metadata, nil |
| 78 | } |
| 79 | |
| 80 | // ensureDatabaseInitialized creates buckets required for metadata store in order |
| 81 | // to avoid bucket existence checks across the code |
searching dependent graphs…