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

Method StartServerWithExternalPg

backend/tests/tests.go:158–220  ·  view source on GitHub ↗

StartServerWithExternalPg starts the main server with external Postgres.

(ctx context.Context)

Source from the content-addressed store, hash-verified

156
157// StartServerWithExternalPg starts the main server with external Postgres.
158func (ctl *controller) StartServerWithExternalPg(ctx context.Context) (context.Context, error) {
159 pgMainURL := fmt.Sprintf("postgresql://postgres:root-password@%s:%s/postgres", externalPgHost, externalPgPort)
160 db, err := sql.Open("pgx", pgMainURL)
161 if err != nil {
162 return nil, err
163 }
164 defer db.Close()
165 databaseName := getTestDatabaseString()
166 if _, err := db.Exec(fmt.Sprintf("CREATE DATABASE %s", databaseName)); err != nil {
167 return nil, err
168 }
169
170 pgURL := fmt.Sprintf("postgresql://postgres:root-password@%s:%s/%s", externalPgHost, externalPgPort, databaseName)
171 serverPort := getTestPort()
172 profile := getTestProfileWithExternalPg(serverPort, pgURL)
173 server, err := server.NewServer(ctx, profile)
174 if err != nil {
175 return nil, err
176 }
177 ctl.server = server
178 ctl.profile = profile
179
180 metaCtx, err := ctl.start(ctx, serverPort)
181 if err != nil {
182 return nil, err
183 }
184 if err := ctl.setLicense(metaCtx); err != nil {
185 return nil, err
186 }
187 if err := ctl.initWorkspaceProfile(metaCtx); err != nil {
188 return nil, err
189 }
190 for _, environment := range []string{"test", "prod"} {
191 if _, err := ctl.orgPolicyServiceClient.CreatePolicy(metaCtx, connect.NewRequest(&v1pb.CreatePolicyRequest{
192 Parent: fmt.Sprintf("environments/%s", environment),
193 Policy: &v1pb.Policy{
194 Type: v1pb.PolicyType_ROLLOUT_POLICY,
195 Policy: &v1pb.Policy_RolloutPolicy{
196 RolloutPolicy: &v1pb.RolloutPolicy{
197 Automatic: false,
198 },
199 },
200 },
201 })); err != nil {
202 return nil, err
203 }
204 }
205
206 projectID := "test-project"
207 resp, err := ctl.projectServiceClient.CreateProject(metaCtx, connect.NewRequest(&v1pb.CreateProjectRequest{
208 Project: &v1pb.Project{
209 Title: projectID,
210 AllowSelfApproval: true,
211 },
212 ProjectId: projectID,
213 }))
214 if err != nil {
215 return nil, err

Calls 10

startMethod · 0.95
setLicenseMethod · 0.95
initWorkspaceProfileMethod · 0.95
getTestDatabaseStringFunction · 0.85
getTestPortFunction · 0.85
OpenMethod · 0.65
CloseMethod · 0.65
CreatePolicyMethod · 0.65
CreateProjectMethod · 0.65