@@ -783,34 +783,31 @@ <h3 id="load-required-extensions">📚 Load Required Extensions</h3>
783783non-transactional.</ p >
784784</ blockquote >
785785< 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 >
790787< div class ="highlight "> < pre > < span > </ span > < code > < span class ="c1 "> -- 10-create_api_schema.sql</ span >
791788< span class ="k "> begin</ span > < span class ="p "> ;</ span >
792789
790+ < span class ="c1 "> -- Create task table</ span >
793791< 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 >
794792< 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 >
795793< 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 >
796794< span class ="p "> );</ span >
797795
796+ < span class ="c1 "> -- Publish changes to the task table</ span >
798797< 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 >
799798< 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 >
800799< span class ="k "> begin</ span >
801800< 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 >
802801< span class ="k "> end</ span > < span class ="p "> ;</ span >
803802< span class ="err "> $$</ span > < span class ="p "> ;</ span >
804803
804+ < span class ="c1 "> -- Trigger the task_updated function on update</ span >
805805< 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 >
807807< 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 >
808808
809809< span class ="k "> commit</ span > < span class ="p "> ;</ span >
810810</ code > </ pre > </ div >
811-
812- </ details >
813-
814811< h2 id ="3-run-the-migrations "> ▶️ 3. Run the Migrations</ h2 >
815812< p > Once your migrations are ready:</ p >
816813< div class ="highlight "> < pre > < span > </ span > < code > bin/postgres< span class ="w "> </ span > migrate
0 commit comments