diff --git a/migrations/development/20230314062152-course-flavor.sql b/migrations/development/20230314062152-course-flavor.sql
index 85bfe5057ff59334383b17c3482738e8b5e3c03c..5f7275e89166791dd31f4e42dd142df223ca4d73 100644
--- a/migrations/development/20230314062152-course-flavor.sql
+++ b/migrations/development/20230314062152-course-flavor.sql
@@ -15,7 +15,7 @@ CREATE OR REPLACE FUNCTION assign_lecturer()
 RETURNS TRIGGER
 AS $assign$
 BEGIN
-  IF NEW.lecturer is NULL OR NEW.lecturer = '' THEN
+  IF NEW.lecturer is NULL THEN
     NEW.lecturer = (SELECT name FROM public."user" WHERE email = NEW.email);
   END IF;
   RETURN NEW;
diff --git a/migrations/development/20230504193444-addonupdate-lecturer.sql b/migrations/development/20230504193444-addonupdate-lecturer.sql
new file mode 100644
index 0000000000000000000000000000000000000000..bff6089a086433903d44567a2219ef1ef71d18b6
--- /dev/null
+++ b/migrations/development/20230504193444-addonupdate-lecturer.sql
@@ -0,0 +1,32 @@
+
+-- +migrate Up
+
+CREATE OR REPLACE TRIGGER assign_lecturer
+BEFORE INSERT OR UPDATE ON public."course"
+FOR EACH ROW EXECUTE PROCEDURE assign_lecturer();
+
+
+-- +migrate StatementBegin
+CREATE OR REPLACE FUNCTION update_lecturer()
+RETURNS TRIGGER
+AS $cascade$
+BEGIN
+    UPDATE public."course"
+    SET lecturer = NEW.name
+    WHERE email = NEW.email AND lecturer = OLD.name;
+    RETURN NEW;
+END;
+$cascade$ LANGUAGE plpgsql;
+-- +migrate StatementEnd
+
+CREATE OR REPLACE TRIGGER update_lecturer
+BEFORE UPDATE ON public."user"
+FOR EACH ROW EXECUTE PROCEDURE update_lecturer();
+
+-- +migrate Down
+
+DROP TRIGGER IF EXISTS update_lecturer ON public."user";
+
+CREATE OR REPLACE TRIGGER assign_lecturer
+BEFORE INSERT ON public."course"
+FOR EACH ROW EXECUTE PROCEDURE assign_lecturer();
diff --git a/migrations/staging/20230314062152-course-flavor.sql b/migrations/staging/20230314062152-course-flavor.sql
index 0b467420032b8253090cb862e4f12754f5ffedb6..5f7275e89166791dd31f4e42dd142df223ca4d73 100644
--- a/migrations/staging/20230314062152-course-flavor.sql
+++ b/migrations/staging/20230314062152-course-flavor.sql
@@ -28,7 +28,7 @@ BEFORE INSERT ON public."course"
 FOR EACH ROW EXECUTE PROCEDURE assign_lecturer();
 
 -- +migrate Down
-DROP TRIGGER IF EXISTS assign_lecturer ON public."course"
+DROP TRIGGER IF EXISTS assign_lecturer ON public."course";
 
 DROP FUNCTION IF EXISTS assign_lecturer();
 
diff --git a/migrations/staging/20230504193444-addonupdate-lecturer.sql b/migrations/staging/20230504193444-addonupdate-lecturer.sql
new file mode 100644
index 0000000000000000000000000000000000000000..bff6089a086433903d44567a2219ef1ef71d18b6
--- /dev/null
+++ b/migrations/staging/20230504193444-addonupdate-lecturer.sql
@@ -0,0 +1,32 @@
+
+-- +migrate Up
+
+CREATE OR REPLACE TRIGGER assign_lecturer
+BEFORE INSERT OR UPDATE ON public."course"
+FOR EACH ROW EXECUTE PROCEDURE assign_lecturer();
+
+
+-- +migrate StatementBegin
+CREATE OR REPLACE FUNCTION update_lecturer()
+RETURNS TRIGGER
+AS $cascade$
+BEGIN
+    UPDATE public."course"
+    SET lecturer = NEW.name
+    WHERE email = NEW.email AND lecturer = OLD.name;
+    RETURN NEW;
+END;
+$cascade$ LANGUAGE plpgsql;
+-- +migrate StatementEnd
+
+CREATE OR REPLACE TRIGGER update_lecturer
+BEFORE UPDATE ON public."user"
+FOR EACH ROW EXECUTE PROCEDURE update_lecturer();
+
+-- +migrate Down
+
+DROP TRIGGER IF EXISTS update_lecturer ON public."user";
+
+CREATE OR REPLACE TRIGGER assign_lecturer
+BEFORE INSERT ON public."course"
+FOR EACH ROW EXECUTE PROCEDURE assign_lecturer();