|
package ocpmigrations
import (
"database/sql"
"github.com/RedHatInsights/insights-results-aggregator/migration"
"github.com/RedHatInsights/insights-results-aggregator/types"
)
var mig0016AddRecommendationsTable = migration . Migration {
StepUp : func ( tx * sql . Tx , driver types . DBDriver ) error {
|
Create recommendation table using currently stored rule hits
|
if driver != types . DBDriverPostgres {
_ , err := tx . Exec ( `
CREATE TABLE recommendation
AS SELECT
org_id,
cluster_id,
rule_fqdn,
error_key
FROM rule_hit;
` )
|
stop here if not working with postgres
|
return err
}
|
Create recommendation table using records from rule_hit table
|
_ , err := tx . Exec ( `
CREATE TABLE recommendation
AS SELECT
org_id,
cluster_id,
REGEXP_REPLACE(rule_fqdn, 'report$', error_key) AS rule_fqdn,
error_key
FROM rule_hit;
` )
if err != nil {
return err
}
|
Add the primary_key to the new table
|
_ , err = tx . Exec ( `
ALTER TABLE recommendation
ADD CONSTRAINT recommendation_pk
PRIMARY KEY (org_id, cluster_id, rule_fqdn, error_key);` )
return err
} ,
StepDown : func ( tx * sql . Tx , driver types . DBDriver ) error {
_ , err := tx . Exec ( `
DROP TABLE recommendation;
` )
return err
} ,
}
|