MCPcopy Index your code
hub / github.com/bytebase/bytebase / CreateDatabaseDefault

Method CreateDatabaseDefault

backend/store/database.go:260–289  ·  view source on GitHub ↗

CreateDatabaseDefault creates a new database in the default project.

(ctx context.Context, create *DatabaseMessage)

Source from the content-addressed store, hash-verified

258
259// CreateDatabaseDefault creates a new database in the default project.
260func (s *Store) CreateDatabaseDefault(ctx context.Context, create *DatabaseMessage) (*DatabaseMessage, error) {
261 q := qb.Q().Space(`
262 INSERT INTO db (
263 instance,
264 project,
265 name,
266 deleted
267 )
268 VALUES (?, ?, ?, ?)
269 ON CONFLICT (instance, name) DO UPDATE SET
270 deleted = EXCLUDED.deleted`,
271 create.InstanceID,
272 create.ProjectID,
273 create.DatabaseName,
274 false,
275 )
276
277 query, args, err := q.ToSQL()
278 if err != nil {
279 return nil, errors.Wrapf(err, "failed to build sql")
280 }
281
282 if _, err := s.GetDB().ExecContext(ctx, query, args...); err != nil {
283 return nil, err
284 }
285
286 // Invalidate and update the cache.
287 s.removeDatabaseCache(ctx, create.InstanceID, create.DatabaseName)
288 return s.GetDatabase(ctx, &FindDatabaseMessage{InstanceID: &create.InstanceID, DatabaseName: &create.DatabaseName, ShowDeleted: true})
289}
290
291// UpsertDatabase upserts a database.
292func (s *Store) UpsertDatabase(ctx context.Context, create *DatabaseMessage) (*DatabaseMessage, error) {

Callers 1

SyncInstanceMethod · 0.80

Calls 6

GetDBMethod · 0.95
removeDatabaseCacheMethod · 0.95
GetDatabaseMethod · 0.95
QFunction · 0.92
SpaceMethod · 0.80
ToSQLMethod · 0.80

Tested by

no test coverage detected