How to use constructor in Transparent proxy contract?

I have an old proxy contract that is using the constructor. It initializes the variables through this constructor instead of initialize().
I am going to upgrade this contract, but need to confirm if it will work as expected.

Because when I deployed it to testnet, I could see the constructor was called, but the state variables were not initialized. In the constructor, I initialized the owner address, but it was a zero address so I couldn't upgrade it due to the owner being a zero address, it's not me.

The code is

 upgradeStaking = await upgrades.deployProxy(GuruCoreSetNFTStakingProxy, [], 
    {
      kind: 'transparent',
      initializer: false,
      unsafeAllow: [
        "constructor", "state-variable-assignment"
      ],
      constructorArgs: ["0x55c67F2999b8da5a579D3642aDC6B8F2255Be134", "0x4bE30FAA75C3E9ACacf27bB612Ad97D32185DD41", "0xD8290aee42d2C084684707D2DE36D9a89BfC66Bd"]
    }
    );

Hi, welcome to the community! :wave:

I think you can use upgrades.upgradeProxy to upgrade the proxy contract, and for more details, maybe you can have a look at here: Upgrading smart contracts - OpenZeppelin Docs