{"id":791,"date":"2013-11-03T13:17:51","date_gmt":"2013-11-03T12:17:51","guid":{"rendered":"http:\/\/qualilogy.com\/es\/?p=791"},"modified":"2013-11-03T16:09:17","modified_gmt":"2013-11-03T15:09:17","slug":"sonarqube-upgrade1","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/sonarqube-upgrade1\/","title":{"rendered":"SonarQube Upgrade &#8211; Prerequisitos"},"content":{"rendered":"<p><a href=\"http:\/\/500px.com\/Vicken\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1249\" alt=\"SonarUpgradeImg\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarUpgradeImg.jpg\" width=\"351\" height=\"351\" \/><\/a><\/p>\n<p>Hemos visto anteriormente c\u00f3mo <a href=\"http:\/\/qualilogy.com\/es\/migrar-sonarqube-tomcat-a-servicio-windows\/\" target=\"_blank\">migrar SonarQube de Tomcat en un servicio Windows<\/a> y c\u00f3mo <a href=\"http:\/\/qualilogy.com\/es\/sonarqube-servicio-windows-jenkins-tomcat\/\" target=\"_blank\">utilizar este servicio SonarQube con Jenkins en Tomcat<\/a> o en servicio Windows tambi\u00e9n.<\/p>\n<p>He utilizado una versi\u00f3n 3.5.1 para realizar esta migraci\u00f3n desde Tomcat hacia un servicio de Windows. Esta versi\u00f3n ya es un poco vieja, pues es una oportunidad para hacer un upgrade y actualizar nuestro entorno SonarQube y nuestros distintos plugins.<\/p>\n<p>Vamos a dedicar dos art\u00edculos a esta operaci\u00f3n, y en este primero, vamos a presentar las etapas previas a nuestro upgrade. Tambi\u00e9n ser\u00e1 la oportunidad de realizar una copia de seguridad de Oracle. <!--more--><\/p>\n<h1>Task list<\/h1>\n<p><span id=\"result_box\" lang=\"es\"><span title=\"Dans un premier temps, je vais d'abord planifier les diff\u00e9rentes actions \u00e0 r\u00e9aliser.\">En primer lugar, voy a planificar las diferentes acciones que realizar. <\/span><span title=\"Non pas que cette op\u00e9ration soit compliqu\u00e9e, mais c'est l'occasion d'effectuer un \u00e9tat des lieux de notre environnement, et en particulier des \u00e9volutions au niveau des plugins.\">Esta operaci\u00f3n no es complicada, pero es una oportunidad para hacer un inventario de nuestro entorno y de las evoluciones de los plugins. <\/span><span title=\"Un upgrade ne consiste pas uniquement \u00e0 installer une nouvelle version de SonarQube mais \u00e9galement \u00e0 mettre \u00e0 jour nos plugins.\">La actualizaci\u00f3n no es s\u00f3lo la instalaci\u00f3n de una nueva versi\u00f3n de SonarQube sino tambi\u00e9n un upgrade de plugins. <\/span><span title=\"Et j'aime bien savoir quelles sont les \u00e9volutions disponibles, s'il existe de nouvelles r\u00e8gles \u00e0 tester, une nouvelle fonctionnalit\u00e9 \u00e0 mettre en oeuvre, etc.\">Y me gustar\u00eda saber qu\u00e9 cambios est\u00e1n disponibles, si hay nuevas reglas que\u00a0 probar, una nueva caracter\u00edstica que implementar, una nueva funcionalidad que me podr\u00eda interesar.<\/span><\/span><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span title=\"Enfin, lister les plugins \u00e0 upgrader permet de garder une certaine tra\u00e7abilit\u00e9 de notre environnement, et je vous conseille de faire de m\u00eame, notamment si vous utilisez SonarQube dans un cadre professionnel.\">Por \u00faltimo, hacer una lista de los plugins que actualizar permite mantiener alg\u00fan rastro de nuestro entorno, y te sugiero que hagas lo mismo, sobre todo si utilizas SonarQube en un entorno profesional. <\/span><span title=\"Une nouvelle r\u00e8gle ou la modification d'une r\u00e8gle existante dans vos analyses de code peut amener une hausse subite de d\u00e9fauts dans le tableau de bord SonarQube, sans que les d\u00e9veloppeurs comprennent la cause de cette d\u00e9gradation soudaine de la qualit\u00e9 de leur application.\">Una nueva regla o la modificaci\u00f3n de una regla existente puede crear un aumento de los defectos en un an\u00e1lisis de c\u00f3digo sin que los desarrolladores puedan entender la causa de este s\u00fabito deterioro de la calidad de su aplicaci\u00f3n.<\/span><\/span><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span title=\"La premi\u00e8re r\u00e9action est alors de mettre en doute la validit\u00e9 de vos analyses, et dans ce cas, mieux vaut \u00eatre pr\u00eat \u00e0 r\u00e9pondre qu'une nouvelle version de plugin a introduit une nouvelle r\u00e8gle \u00e0 l'origine de ces nouveaux d\u00e9fauts.\">La primera reacci\u00f3n es poner en duda la validez de vuestros an\u00e1lisis, y en este caso, es mejor estar preparados para explicar que nueva versi\u00f3n del plugin ha introducido cual nueva norma al origen de estos nuevos defectos. <\/span><span title=\"Garder un document avec les modifications apport\u00e9es \u00e0 votre environnement d'analyse permet de justifier ces \u00e9volutions.\">Mantener un documento con los cambios en tu entorno permite justificar estos cambios.<\/span><\/span><\/p>\n<h2>Update Center<\/h2>\n<p>Tengo todos los correos de la lista de mails SonarQube anunciando una nueva versi\u00f3n del software o de plugins, pero hay una manera m\u00e1s f\u00e1cil de saber que es up-to-date o no: el Update Center.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeLogin.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1265\" alt=\"SonarQube Login\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeLogin.jpg\" width=\"277\" height=\"210\" \/><\/a>Por eso, vamos a conectarnos como Admin en el dashboard de SonarQube.<\/p>\n<p>Luego vamos a la p\u00e1gina del Update Center y seleccionamos el men\u00fa:<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeLogin2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1266\" alt=\"SonarQubeLogin2\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeLogin2.jpg\" width=\"190\" height=\"138\" \/><\/a><\/p>\n<p>&#8216;Settings&#8217; y el sub-men\u00fa &#8216;Configuration&#8217;.<\/p>\n<p>En esta pagina de configuraci\u00f3n, elegimos el men\u00fa &#8216;Update Center&#8217; para mostrar la pantalla correspondiente, con pesta\u00f1as que nos permiten conocer:<\/p>\n<ul>\n<li>Los plugins instalados.<\/li>\n<li>Los plugins no instalados pero disponibles, que podemos instalar.<\/li>\n<li>Los plugins con una nueva versi\u00f3n disponible.<\/li>\n<li>Toda(s) nueva(s) versione(s) de SonarQube.<\/li>\n<\/ul>\n<p>Y lo m\u00e1s importante, la lista de acciones para realizar un upgrade de versi\u00f3n de SonarQube desde la pesta\u00f1a &#8216;System Updates&#8217;:<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeUpgrade1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1269\" alt=\"SonarQubeUpgrade1\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeUpgrade1.jpg\" width=\"696\" height=\"484\" \/><\/a><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Por tanto, la actualizaci\u00f3n<\/span> <span class=\"hps\">de mi<\/span> entorno <span class=\"hps\">Sonar<\/span> <span class=\"hps\">ser\u00e1<\/span><span>:<\/span><br \/>\n<span class=\"hps\">1<\/span><span>.<\/span> <span class=\"hps\">Quitar los<\/span> <span class=\"hps\">plugins<\/span> <span class=\"hps\">obsoletos<\/span><span>.<\/span><br \/>\n<span class=\"hps\">2<\/span><span>.<\/span> <span class=\"hps\">Actualizar<\/span> <span class=\"hps\">la versi\u00f3n<\/span> <span class=\"hps\">de los plugins<\/span> <span class=\"hps\">existentes.<\/span><br \/>\n<span class=\"hps\">3<\/span><span>.<\/span> <span class=\"hps\">Actualizar<\/span> la <span class=\"hps\">versi\u00f3n<\/span> de <span class=\"hps\">SonarQube<\/span><span>.<\/span><br \/>\n<span class=\"hps\">4<\/span><span>.<\/span> <span class=\"hps\">Upgrade<\/span> <span class=\"hps atn\">(<\/span><span>posterior a la actualizaci\u00f3n<\/span> de <span class=\"hps\">SonarQube<\/span><span>)<\/span> de <span class=\"hps\">plugins<\/span> <span class=\"hps\">o a\u00f1adir<\/span> <span class=\"hps\">nuevos<\/span> <span class=\"hps\">plugins<\/span><span class=\"hps\">.<\/span><\/span><\/p>\n<p>Aprovecharemos tambi\u00e9n para comprobar en el sitio web de SonarSource <a title=\"Proc\u00e9dure d'upgrade SonarQube\" href=\"http:\/\/docs.codehaus.org\/display\/SONAR\/Upgrading\" target=\"_blank\">el procedimiento de upgrade<\/a> y consultar las Release Notes (al final de la pagina).<\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Y<\/span> <span class=\"hps\">tal como se aconseja<\/span> <span class=\"hps\">en<\/span> <span class=\"hps\">esta p\u00e1gina<\/span><span>, vamos a hacer una<\/span> <span class=\"hps\">copia de seguridad<\/span> <span class=\"hps\">del esquema Sonar <\/span><span class=\"hps\">en<\/span> <span class=\"hps\">la base de datos<\/span> <span class=\"hps\">Oracle<\/span><span>.<\/span><\/span><\/p>\n<h2>Backup Oracle<\/h2>\n<p>Lo m\u00e1s sencillo para realizar una copia de seguridad con Oracle es desde una ventana DOS con un comando para EXPortar los datos de la base de datos. Restaurar un esquema (o toda la base de datos) se hace con un comando de IMPort.<\/p>\n<p>Pero cuidado : estos comandos han cambiado con el Oracle 10g. Todav\u00eda es posible utilizar las antiguas clausulas EXP \/ IMP para realizar un backup \/ restore, pero tengas en cuenta que este comando EXP guarda los datos de &#8230; tablas con datos. En otras palabras, s\u00f3lo se guardar\u00e1n las tablas que contienen registros. Y si se restaura un esquema de Sonar de un dump realizado con el comando EXP, encontrar\u00e1s un error con SonarQube, ya que no podr\u00e1s contar con algunas tablas vacias.<\/p>\n<p>Los comandos que utilizar para evitar este problema son EXPDP y IMPDP. DP significa Data Pump (s\u00ed, lo s\u00e9, a mi tambi\u00e9n el nombre me hace sonre\u00edr). Cuidado de nuevo: los dumps no son del mismo formato. En otras palabras, no se puede restaurar con el comando IMPDP un dump realizado con el comando EXP.<\/p>\n<p>La sintaxis de estos comandos es bastante similar, excepto para la ubicaci\u00f3n del archivo dump. Como podemos ver en la siguiente ilustraci\u00f3n, los par\u00e1metros que indicamos son:<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1272\" alt=\"OracleEXPDP2\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP2.jpg\" width=\"685\" height=\"289\" \/><\/a><\/p>\n<ul>\n<li>El nombre del usuario Oracle para el esquema Sonar, con su password y la indicaci\u00f3n de la base de datos, respectando la sintaxis <em>esquema\/password@dbname<\/em>, <strong>sonar\/sonar@JPORA11<\/strong> en mi caso.<\/li>\n<li>El nombre del fichero dump de backup.<\/li>\n<li>El nombre del fichero log de backup, que permite comprobar que todo se paso bien.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1274\" alt=\"OracleEXPDP3\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP3.jpg\" width=\"684\" height=\"193\" \/><\/a><\/p>\n<p>El log te dar\u00e1 tambi\u00e9n la lista de las tablas &#8216;exportadas&#8217;, que te permitir\u00e1 comprobar que las tablas con &#8216;0 registros&#8217; est\u00e1n presentes en la copia de seguridad. O si tienes un problema con SonarQube despu\u00e8s de restaurar este dump, al menos no vendr\u00e1 del backup.<\/p>\n<p>Pero hay una diferencia con el antiguo comando EXP, el dump no se encuentra en el directorio donde hemos lanzado el backup, pero por defecto, se genera en el directorio &#8216;DPDUMP&#8217; bajo el directorio de instalaci\u00f3n de la base de datos bajo el directorio de instalaci\u00f3n de Oracle. Hubiera preferido poder decidir d\u00f3nde colocar la copia de seguridad, pero bueno, una vez que sabemos d\u00f3nde conseguirla &#8230; Es posible configurar un directorio predeterminado, pero hay que escribir un script SQL para cambiar esta configuraci\u00f3n, o hacerlo manualmente con los comandos SQL correspondientes. Un poco complicado.<\/p>\n<p>Bueno. Ya hemos terminado con nuestras acciones previas para actualizar SonarQube. Lo que veremos en nuestro pr\u00f3ximo post.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hemos visto anteriormente c\u00f3mo migrar SonarQube de Tomcat en un servicio Windows y c\u00f3mo utilizar este servicio SonarQube con Jenkins en Tomcat o en servicio Windows tambi\u00e9n. He utilizado una versi\u00f3n 3.5.1 para realizar esta migraci\u00f3n desde Tomcat hacia un servicio de Windows. Esta versi\u00f3n ya es un poco vieja, pues es una oportunidad para [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-791","post","type-post","status-publish","format-standard","hentry","category-sonar-instalacion"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/791"}],"collection":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/comments?post=791"}],"version-history":[{"count":18,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/791\/revisions"}],"predecessor-version":[{"id":793,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/791\/revisions\/793"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=791"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}