@@ -783,34 +783,31 @@ <h3 id="load-required-extensions">📚 Load Required Extensions</h3>
783
783
non-transactional.</ p >
784
784
</ blockquote >
785
785
< h3 id ="use-pg_amqp "> 🏗 Use pg_amqp</ h3 >
786
- < p > Add to a migration file, e.g. < code > 10-create_api_schema.sql</ code > .</ p >
787
- < details >
788
- < summary > Click to view file</ summary >
789
-
786
+ < p > Publish messages in a migration script, e.g. < code > 03-create_api_schema.sql</ code > :</ p >
790
787
< div class ="highlight "> < pre > < span > </ span > < code > < span class ="c1 "> -- 10-create_api_schema.sql</ span >
791
788
< span class ="k "> begin</ span > < span class ="p "> ;</ span >
792
789
790
+ < span class ="c1 "> -- Create task table</ span >
793
791
< span class ="k "> create</ span > < span class ="w "> </ span > < span class ="k "> table</ span > < span class ="w "> </ span > < span class ="n "> api</ span > < span class ="p "> .</ span > < span class ="n "> task</ span > < span class ="w "> </ span > < span class ="p "> (</ span >
794
792
< span class ="w "> </ span > < span class ="n "> id</ span > < span class ="w "> </ span > < span class ="nb "> serial</ span > < span class ="w "> </ span > < span class ="k "> primary</ span > < span class ="w "> </ span > < span class ="k "> key</ span > < span class ="p "> ,</ span >
795
793
< span class ="w "> </ span > < span class ="n "> name</ span > < span class ="w "> </ span > < span class ="nb "> text</ span > < span class ="w "> </ span > < span class ="k "> not</ span > < span class ="w "> </ span > < span class ="k "> null</ span >
796
794
< span class ="p "> );</ span >
797
795
796
+ < span class ="c1 "> -- Publish changes to the task table</ span >
798
797
< span class ="k "> create</ span > < span class ="w "> </ span > < span class ="k "> function</ span > < span class ="w "> </ span > < span class ="n "> api</ span > < span class ="p "> .</ span > < span class ="n "> task_updated</ span > < span class ="p "> ()</ span > < span class ="w "> </ span > < span class ="k "> returns</ span > < span class ="w "> </ span > < span class ="n "> void</ span >
799
798
< span class ="k "> language</ span > < span class ="w "> </ span > < span class ="n "> plpgsql</ span > < span class ="w "> </ span > < span class ="k "> as</ span > < span class ="w "> </ span > < span class ="err "> $$</ span >
800
799
< span class ="k "> begin</ span >
801
800
< span class ="w "> </ span > < span class ="n "> perform</ span > < span class ="w "> </ span > < span class ="n "> amqp</ span > < span class ="p "> .</ span > < span class ="n "> publish</ span > < span class ="p "> (</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="s1 "> 'amq.topic'</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="s1 "> 'tasks'</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> json_build_object</ span > < span class ="p "> (</ span > < span class ="s1 "> 'event'</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="s1 "> 'task_updated'</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="s1 "> 'command'</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="n "> command</ span > < span class ="p "> )::</ span > < span class ="nb "> text</ span > < span class ="p "> );</ span >
802
801
< span class ="k "> end</ span > < span class ="p "> ;</ span >
803
802
< span class ="err "> $$</ span > < span class ="p "> ;</ span >
804
803
804
+ < span class ="c1 "> -- Trigger the task_updated function on update</ span >
805
805
< span class ="k "> create</ span > < span class ="w "> </ span > < span class ="k "> trigger</ span > < span class ="w "> </ span > < span class ="n "> task_updated</ span >
806
- < span class ="k "> before</ span > < span class ="w "> </ span > < span class ="k "> update</ span > < span class ="w "> </ span > < span class ="k "> on</ span > < span class ="w "> </ span > < span class ="n "> api</ span > < span class ="p "> .</ span > < span class ="n "> task</ span >
806
+ < span class ="k "> before</ span > < span class ="w "> </ span > < span class ="k "> insert </ span > < span class =" w " > </ span > < span class =" k " > or </ span > < span class =" w " > </ span > < span class =" k " > update</ span > < span class ="w "> </ span > < span class ="k "> on</ span > < span class ="w "> </ span > < span class ="n "> api</ span > < span class ="p "> .</ span > < span class ="n "> task</ span >
807
807
< span class ="k "> for</ span > < span class ="w "> </ span > < span class ="k "> each</ span > < span class ="w "> </ span > < span class ="k "> row</ span > < span class ="w "> </ span > < span class ="k "> execute</ span > < span class ="w "> </ span > < span class ="k "> procedure</ span > < span class ="w "> </ span > < span class ="n "> api</ span > < span class ="p "> .</ span > < span class ="n "> task_updated</ span > < span class ="p "> ();</ span >
808
808
809
809
< span class ="k "> commit</ span > < span class ="p "> ;</ span >
810
810
</ code > </ pre > </ div >
811
-
812
- </ details >
813
-
814
811
< h2 id ="3-run-the-migrations "> ▶️ 3. Run the Migrations</ h2 >
815
812
< p > Once your migrations are ready:</ p >
816
813
< div class ="highlight "> < pre > < span > </ span > < code > bin/postgres< span class ="w "> </ span > migrate
0 commit comments