mirror of https://github.com/gophish/gophish
53 lines
1.5 KiB
SQL
53 lines
1.5 KiB
SQL
|
|
-- +goose Up
|
|
-- SQL in section 'Up' is executed when this migration is applied
|
|
-- Move the relationship between campaigns and smtp to campaigns
|
|
ALTER TABLE campaigns ADD COLUMN "smtp_id" bigint;
|
|
UPDATE campaigns
|
|
SET smtp_id = (
|
|
SELECT smtp.smtp_id
|
|
FROM smtp,campaigns
|
|
WHERE campaigns.id=smtp.campaign_id
|
|
)
|
|
;
|
|
-- Add the appropriate user_id to each smtp record
|
|
ALTER TABLE smtp ADD COLUMN "user_id" bigint;
|
|
UPDATE smtp
|
|
SET user_id = (
|
|
SELECT campaigns.user_id
|
|
FROM smtp,campaigns
|
|
WHERE smtp.smtp_id=campaigns.smtp_id
|
|
)
|
|
;
|
|
-- Create a new table to store smtp records
|
|
ALTER TABLE smtp RENAME TO smtp_old;
|
|
CREATE TABLE smtp(
|
|
id integer primary key autoincrement,
|
|
user_id bigint,
|
|
interface_type varchar(255),
|
|
name varchar(255),
|
|
host varchar(255),
|
|
username varchar(255),
|
|
password varchar(255),
|
|
from_address varchar(255),
|
|
modified_date datetime default CURRENT_TIMESTAMP,
|
|
ignore_cert_errors BOOLEAN
|
|
);
|
|
-- Import existing smtp records into new format and drop the old table
|
|
INSERT INTO smtp (id,user_id,interface_type,name,host,username,from_address,ignore_cert_errors)
|
|
SELECT smtp_id,user_id,'SMTP',
|
|
'Imported campaign via ' || COALESCE(host,'') || ' from ' || COALESCE(from_address,''),
|
|
host,username,from_address,ignore_cert_errors
|
|
FROM smtp_old
|
|
-- Prevent insertion of duplicate records
|
|
WHERE smtp_id IN (
|
|
SELECT smtp_id
|
|
FROM smtp_old
|
|
GROUP BY user_id,host,from_address
|
|
)
|
|
;
|
|
DROP TABLE smtp_old;
|
|
-- +goose Down
|
|
-- SQL section 'Down' is executed when this migration is rolled back
|
|
|