()
| 1549 | } |
| 1550 | |
| 1551 | func (c *Cluster) syncPreparedDatabases() error { |
| 1552 | c.setProcessName("syncing prepared databases") |
| 1553 | errors := make([]string, 0) |
| 1554 | |
| 1555 | for preparedDbName, preparedDB := range c.Spec.PreparedDatabases { |
| 1556 | if err := c.initDbConnWithName(preparedDbName); err != nil { |
| 1557 | errors = append(errors, fmt.Sprintf("could not init connection to database %s: %v", preparedDbName, err)) |
| 1558 | continue |
| 1559 | } |
| 1560 | |
| 1561 | c.logger.Debugf("syncing prepared database %q", preparedDbName) |
| 1562 | // now, prepare defined schemas |
| 1563 | preparedSchemas := preparedDB.PreparedSchemas |
| 1564 | if len(preparedDB.PreparedSchemas) == 0 { |
| 1565 | preparedSchemas = map[string]acidv1.PreparedSchema{"data": {DefaultRoles: util.True()}} |
| 1566 | } |
| 1567 | if err := c.syncPreparedSchemas(preparedDbName, preparedSchemas); err != nil { |
| 1568 | errors = append(errors, err.Error()) |
| 1569 | continue |
| 1570 | } |
| 1571 | |
| 1572 | // install extensions |
| 1573 | if err := c.syncExtensions(preparedDB.Extensions); err != nil { |
| 1574 | errors = append(errors, err.Error()) |
| 1575 | } |
| 1576 | |
| 1577 | if err := c.closeDbConn(); err != nil { |
| 1578 | c.logger.Errorf("could not close database connection: %v", err) |
| 1579 | } |
| 1580 | } |
| 1581 | |
| 1582 | if len(errors) > 0 { |
| 1583 | return fmt.Errorf("error(s) while syncing prepared databases: %v", strings.Join(errors, `', '`)) |
| 1584 | } |
| 1585 | |
| 1586 | return nil |
| 1587 | } |
| 1588 | |
| 1589 | func (c *Cluster) syncPreparedSchemas(databaseName string, preparedSchemas map[string]acidv1.PreparedSchema) error { |
| 1590 | c.setProcessName("syncing prepared schemas") |
no test coverage detected