@@ -10,16 +10,15 @@ import (
1010 "syscall"
1111
1212 "github.com/MakeNowJust/heredoc"
13- "github.com/newrelic/go-agent/v3/newrelic"
1413 "github.com/raystack/compass/core/asset"
1514 "github.com/raystack/compass/core/discussion"
1615 "github.com/raystack/compass/core/star"
1716 "github.com/raystack/compass/core/tag"
1817 "github.com/raystack/compass/core/user"
1918 compassserver "github.com/raystack/compass/internal/server"
20- esStore "github.com/raystack/compass/internal/ store/elasticsearch"
21- "github.com/raystack/compass/internal/ store/postgres"
22- "github.com/raystack/compass/pkg /telemetry"
19+ esStore "github.com/raystack/compass/store/elasticsearch"
20+ "github.com/raystack/compass/store/postgres"
21+ "github.com/raystack/compass/internal /telemetry"
2322 log "github.com/raystack/salt/observability/logger"
2423 "github.com/spf13/cobra"
2524)
@@ -81,7 +80,7 @@ func serverMigrateCommand(cfg *Config) *cobra.Command {
8180 ctx , cancel := signal .NotifyContext (cmd .Context (), syscall .SIGINT , syscall .SIGTERM )
8281 defer cancel ()
8382 if down {
84- return migrateDown (cfg )
83+ return migrateDown (ctx , cfg )
8584 }
8685 return runMigrations (ctx , cfg )
8786 },
@@ -97,11 +96,6 @@ func runServer(config *Config) error {
9796 logger := initLogger (config .LogLevel )
9897 logger .Info ("compass starting" , "version" , Version )
9998
100- nrApp , err := initNewRelicMonitor (config , logger )
101- if err != nil {
102- return err
103- }
104-
10599 otelCleanup , err := telemetry .Init (ctx , config .Telemetry , logger )
106100 if err != nil {
107101 return fmt .Errorf ("failed to initialize telemetry: %w" , err )
@@ -117,6 +111,13 @@ func runServer(config *Config) error {
117111 if err != nil {
118112 return err
119113 }
114+ defer func () {
115+ logger .Warn ("closing db..." )
116+ if err := pgClient .Close (); err != nil {
117+ logger .Error ("error when closing db" , "err" , err )
118+ }
119+ logger .Warn ("db closed..." )
120+ }()
120121
121122 // init tag
122123 tagRepository , err := postgres .NewTagRepository (pgClient )
@@ -169,8 +170,6 @@ func runServer(config *Config) error {
169170 ctx ,
170171 config .Service ,
171172 logger ,
172- pgClient ,
173- nrApp ,
174173 namespaceService ,
175174 assetService ,
176175 starService ,
@@ -212,41 +211,20 @@ func initPostgres(logger log.Logger, config *Config) (*postgres.Client, error) {
212211 return pgClient , nil
213212}
214213
215- func initNewRelicMonitor (config * Config , logger log.Logger ) (* newrelic.Application , error ) {
216- if ! config .NewRelic .Enabled {
217- logger .Info ("New Relic monitoring is disabled." )
218- return nil , nil
219- }
220- app , err := newrelic .NewApplication (
221- newrelic .ConfigAppName (config .NewRelic .AppName ),
222- newrelic .ConfigLicense (config .NewRelic .LicenseKey ),
223- )
224- if err != nil {
225- return nil , fmt .Errorf ("unable to create New Relic Application: %w" , err )
226- }
227- logger .Info ("New Relic monitoring is enabled for" , "config" , config .NewRelic .AppName )
228-
229- return app , nil
230- }
231-
232214func runMigrations (ctx context.Context , config * Config ) error {
233- fmt .Println ("Preparing migration..." )
234-
235215 logger := initLogger (config .LogLevel )
236216 logger .Info ("compass is migrating" , "version" , Version )
237217
238- logger .Info ("Migrating Postgres & ElasticSearch..." )
239218 esClient , err := initElasticsearch (logger , config .Elasticsearch )
240219 if err != nil {
241220 return err
242221 }
243222
244- logger .Info ("Initiating Postgres client..." )
245- pgClient , err := postgres .NewClient (config .DB )
223+ pgClient , err := initPostgres (logger , config )
246224 if err != nil {
247- logger .Error ("failed to prepare migration" , "error" , err )
248225 return err
249226 }
227+ defer pgClient .Close ()
250228
251229 ver , err := pgClient .Migrate (config .DB )
252230 if err != nil {
@@ -265,27 +243,24 @@ func runMigrations(ctx context.Context, config *Config) error {
265243 } else if err != nil {
266244 return fmt .Errorf ("problem with migration %w" , err )
267245 }
268- logger .Info (fmt . Sprintf ( "Migration finished. Version: %d" , ver ) )
246+ logger .Info ("migration finished" , "version" , ver )
269247 return nil
270248}
271249
272- func migrateDown (config * Config ) error {
273- fmt .Println ("Preparing rolling back one step of migration..." )
274-
250+ func migrateDown (ctx context.Context , config * Config ) error {
275251 logger := initLogger (config .LogLevel )
276- logger .Info ("compass is migrating " , "version" , Version )
252+ logger .Info ("compass is rolling back migration " , "version" , Version )
277253
278- logger .Info ("Initiating Postgres client..." )
279- pgClient , err := postgres .NewClient (config .DB )
254+ pgClient , err := initPostgres (logger , config )
280255 if err != nil {
281- logger .Error ("failed to prepare migration" , "error" , err )
282256 return err
283257 }
258+ defer pgClient .Close ()
284259
285260 ver , err := pgClient .MigrateDown (config .DB )
286261 if err != nil {
287262 return fmt .Errorf ("problem with migration %w" , err )
288263 }
289- logger .Info (fmt . Sprintf ( "Migration finished. Version: %d" , ver ) )
264+ logger .Info ("migration finished" , "version" , ver )
290265 return nil
291266}
0 commit comments