truncate and load from source schema to prod schema
If you do a full load to an empty table, then the complete table gets locked; that's quite normal.
In PostgreSQL you can set the transaction isolation to "READ UNCOMMITED" to read the "new" data anyway, see https://www.postgresql.org/docs/8.4/transaction-iso.html