I have created a postgresql database used in integration tests for my code. Its schema is consisted with some materialized views and the code I want to test uses them, therefore I need once I place the test data to refresh them.
But because refreshing them makes the tests slow I need to run the tests in parallel with the materialized view to contain data required only for the test.
Hence, I thought the following approach:
START TRANSACTION
INSERT INTO students (name,class) values ('MIZUKI MINOHARA','A1'),('DIMITRIOS DESYLLAS', 'C3'),('YAMAGUCHI SUZUKI','B7');
REFRESH MATERIALIZED VIEW sempai_list;
-- RUN MY TESTS
ROLLBACK
But would this approach make my tests look on a separate "version" of the materialized views. What I want to achieve is to have the tests look on different test-only data from the materialized view sempai_list
.
Do I achieve that by using and rollback transactions?