This doesn't really make sense because the initializer is what's setting the contract owner. You should just ensure that you deploy the proxy and call the initializer (which sets the owner) in the same transaction -- this can be done using _data in the proxy's constructor.
So I currently have this in my Initializer function. In relation to what you have mentioned, will i not need to insert the "require" function below?
function initialize() initializer public {
require(msg.sender == this.owner(), "Only the owner can call this function");
__ERC721_init("", "");
__ERC721URIStorage_init();
__Pausable_init();
__Ownable_init();
__UUPSUpgradeable_init();
}
OK great, i assume you can do this by writing the migration files for both the proxy and the implementation? Or is the Initializer and proxy called upon deployment?