Erster Aufbau Forum
This commit is contained in:
@@ -16,6 +16,12 @@ export async function createTriggers() {
|
||||
SELECT id FROM type.user_param_visibility WHERE description = 'Invisible'
|
||||
));
|
||||
END IF;
|
||||
|
||||
-- If NEW is null, then we have nothing to do
|
||||
IF NEW IS NULL THEN
|
||||
RETURN NULL;
|
||||
END IF;
|
||||
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
@@ -25,6 +31,7 @@ export async function createTriggers() {
|
||||
CREATE OR REPLACE TRIGGER trigger_create_user_param_visibility
|
||||
AFTER INSERT ON community.user_param
|
||||
FOR EACH ROW
|
||||
WHEN (NEW.id IS NOT NULL)
|
||||
EXECUTE FUNCTION create_user_param_visibility_trigger();
|
||||
`;
|
||||
|
||||
@@ -32,6 +39,7 @@ export async function createTriggers() {
|
||||
CREATE OR REPLACE TRIGGER trigger_update_user_param_visibility
|
||||
AFTER UPDATE ON community.user_param
|
||||
FOR EACH ROW
|
||||
WHEN (NEW.id IS NOT NULL)
|
||||
EXECUTE FUNCTION create_user_param_visibility_trigger();
|
||||
`;
|
||||
|
||||
@@ -39,8 +47,14 @@ export async function createTriggers() {
|
||||
CREATE OR REPLACE FUNCTION insert_diary_history()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
INSERT INTO community.diary_history (diaryId, userId, oldText, oldCreatedAt, oldUpdatedAt)
|
||||
VALUES (OLD.id, OLD.userId, OLD.text, OLD.createdAt, OLD.updatedAt);
|
||||
INSERT INTO community.diary_history (diary_id, user_id, old_text, old_created_at, old_updated_at)
|
||||
VALUES (OLD.id, OLD.user_id, OLD.text, OLD.created_at, OLD.updated_at);
|
||||
|
||||
-- If NEW is null, then we have nothing to do
|
||||
IF NEW IS NULL THEN
|
||||
RETURN NULL;
|
||||
END IF;
|
||||
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
@@ -50,18 +64,41 @@ export async function createTriggers() {
|
||||
CREATE OR REPLACE TRIGGER diary_update_trigger
|
||||
BEFORE UPDATE ON community.diary
|
||||
FOR EACH ROW
|
||||
WHEN (OLD.id IS NOT NULL)
|
||||
EXECUTE FUNCTION insert_diary_history();
|
||||
`;
|
||||
|
||||
const createTitleHistoryTriggerFunction = `
|
||||
CREATE OR REPLACE FUNCTION insert_title_history()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
INSERT INTO forum.title_history (title_id, old_title, changed_by, old_updated_at)
|
||||
VALUES (OLD.id, OLD.title, OLD.created_by, OLD.updated_at);
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
`;
|
||||
|
||||
const createTitleHistoryTrigger = `
|
||||
CREATE OR REPLACE TRIGGER title_update_trigger
|
||||
BEFORE UPDATE ON forum.title
|
||||
FOR EACH ROW
|
||||
WHEN (OLD.id IS NOT NULL)
|
||||
EXECUTE FUNCTION insert_title_history();
|
||||
`;
|
||||
|
||||
try {
|
||||
await sequelize.query(createTriggerFunction);
|
||||
await sequelize.query(createInsertTrigger);
|
||||
await sequelize.query(createUpdateTrigger);
|
||||
await sequelize.query(createDiaryHistoryTriggerFunction);
|
||||
await sequelize.query(createDiaryHistoryTrigger);
|
||||
await sequelize.query(createTitleHistoryTriggerFunction);
|
||||
await sequelize.query(createTitleHistoryTrigger);
|
||||
|
||||
console.log('Triggers created successfully');
|
||||
} catch (error) {
|
||||
console.error('Error creating triggers:', error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user