(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{sWWI:function(e,n,t){"use strict";t.r(n),t.d(n,"_frontmatter",(function(){return p})),t.d(n,"default",(function(){return u}));var a=t("k1TG"),r=t("8o2o"),o=(t("q1tI"),t("7ljp")),s=t("hhGP"),p=(t("qKvR"),{});void 0!==p&&p&&p===Object(p)&&Object.isExtensible(p)&&!p.hasOwnProperty("__filemeta")&&Object.defineProperty(p,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/installation/upgrading_superset.mdx"}});var c={_frontmatter:p},i=s.a;function u(e){var n=e.components,t=Object(r.a)(e,["components"]);return Object(o.b)(i,Object(a.a)({},c,t,{components:n,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"upgrading-superset"},"Upgrading Superset"),Object(o.b)("h3",{id:"docker-compose"},"Docker Compose"),Object(o.b)("p",null,"First make sure to wind down the running containers in Docker Compose:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-bash"}),"docker-compose down\n")),Object(o.b)("p",null,"Then, update the folder that mirrors the ",Object(o.b)("inlineCode",{parentName:"p"},"superset")," repo through git:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-bash"}),"cd superset/\ngit pull origin master\n")),Object(o.b)("p",null,"Then, restart the containers and any changed Docker images will be automatically pulled down:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-bash"}),"docker-compose up\n")),Object(o.b)("h3",{id:"updating-superset-manually"},"Updating Superset Manually"),Object(o.b)("p",null,"To upgrade superset in a native installation, run the following commands:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{className:"language-bash"}),"pip install apache-superset --upgrade\nsuperset db upgrade\nsuperset init\n")),Object(o.b)("p",null,"While upgrading superset should not delete your charts and dashboards, we recommend following best\npractices and to backup your metadata database before upgrading. Before upgrading production, we\nrecommend upgrading in a staging environment and upgrading production finally during off-peak usage."))}void 0!==u&&u&&u===Object(u)&&Object.isExtensible(u)&&!u.hasOwnProperty("__filemeta")&&Object.defineProperty(u,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/installation/upgrading_superset.mdx"}}),u.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-installation-upgrading-superset-mdx-3c5d8adc1dc8506af493.js.map