# How to upgrade a canister using \`skip\_pre\_upgrade = ture\` flag?

**URL:** <https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891>\
**Category:** Developers\
**Tags:** Discussing\
**Created:** [February 26, 2024, 7:15am UTC](https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891 "2024-02-26T07:15:22Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![q2333gh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/q2333gh/32/36020_2.png) [@q2333gh](https://forum.dfinity.org/u/q2333gh)\
**Post date:** [February 26, 2024, 7:15am UTC](https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891/1 "2024-02-26T07:15:22Z")

</div>

What access ways do we have,  
and any practical examples ?

---

<div class="post-metadata">

**Author:** ![q2333gh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/q2333gh/32/36020_2.png) [@q2333gh](https://forum.dfinity.org/u/q2333gh)\
**Post date:** [February 27, 2024, 3:51am UTC](https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891/2 "2024-02-27T03:51:08Z")

</div>

Anyone knows about this please ?

---

<div class="post-metadata">

**Author:** ![q2333gh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/q2333gh/32/36020_2.png) [@q2333gh](https://forum.dfinity.org/u/q2333gh)\
**Post date:** [February 27, 2024, 3:52am UTC](https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891/3 "2024-02-27T03:52:30Z")

</div>

Guess i have to do it myself by look into the ic source code

---

<div class="post-metadata">

**Author:** ![Vivienne](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/vivienne/32/29170_2.png) [@Vivienne](https://forum.dfinity.org/u/Vivienne)\
**Post date:** [February 27, 2024, 7:49am UTC](https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891/4 "2024-02-27T07:49:44Z")

</div>

Until we get that in dfx I think the easiest way is via Motoko where you can do it like this:

```motoko
  type Management = actor {
    install_code : ({
      mode : {
        #install;
        #reinstall;
        #upgrade : { skip_pre_upgrade : Bool };
      };
      canister_id : Principal;
      wasm_module : Blob;
      arg : Blob;
    }) -> async ();
  };

  public func doStuff() : async Nat {
    let IC0 : Management = actor ("aaaaa-aa");
    let a = await IC0.install_code(...);
    ...
  };

  

```

---

<div class="post-metadata">

**Author:** ![q2333gh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/q2333gh/32/36020_2.png) [@q2333gh](https://forum.dfinity.org/u/q2333gh)\
**Post date:** [February 27, 2024, 7:53am UTC](https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891/5 "2024-02-27T07:53:56Z")

</div>

I will try motoko immediately . I never think there is a motoko way. thanks!

---

<div class="post-metadata">

**Author:** ![Vivienne](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/vivienne/32/29170_2.png) [@Vivienne](https://forum.dfinity.org/u/Vivienne)\
**Post date:** [February 27, 2024, 7:55am UTC](https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891/6 "2024-02-27T07:55:29Z")

</div>

Oh and to get a wasm into your canister my preferred way is to use [`ic-repl`](https://github.com/dfinity/ic-repl) where you can call functions with `file("custom.wasm")` which makes it send the file as a blob so you don’t have to deal with converting to blob encoding yourself

---

<div class="post-metadata">

**Author:** ![q2333gh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/q2333gh/32/36020_2.png) [@q2333gh](https://forum.dfinity.org/u/q2333gh)\
**Post date:** [February 27, 2024, 8:03am UTC](https://forum.dfinity.org/t/how-to-upgrade-a-canister-using-skip-pre-upgrade-ture-flag/27891/7 "2024-02-27T08:03:46Z")

</div>

aha. very handy small tool. thanks for warm tip
