Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AGETIC ADSIB BOLIVIA HACKED AGAIN LOL
- ------------
- diff --git a/README.md b/README.md
- index 90fc555..3e88536 100644
- --- a/README.md
- +++ b/README.md
- @@ -1,146 +1,53 @@
- # NSIAF
- -Sistema de Activos Fijos y Almacenes desarrollado por [ADSIB](http://adsib.gob.bo)
- +Sistema de Activos Fijos y Almacenes desarrollado originalmente por [ADSIB](http://adsib.gob.bo)
- +y mejorado con nuevas funcionalidades por [AGETIC](http://agetic.gob.bo).
- ## Instalación
- -La instalación en modo `production` del Sistema está descrito en el archivo [`INSTALL.md`](INSTALL.md)
- +La instalación en modo `production` del Sistema está descrito en el archivo
- +[`INSTALL.md`](INSTALL.md)
- ## Primeros pasos
- -Después del despliegue de la aplicación (en el paso anterior), se define algunos pasos iniciales que se debe seguir en el sistema los cuales están descritos en el archivo [`MANUAL.md`](MANUAL.md)
- +Después del despliegue de la aplicación (en el paso anterior), se define algunos
- +pasos iniciales que se debe seguir en el sistema los cuales están descritos en
- +el archivo [`MANUAL.md`](MANUAL.md)
- ## Desarrollo
- -Para realizar desarrollo de nuevas caraterísticas del sistema en la máquina local, es necesario realizar la configuración del ambiente de desarrollo con `Ruby On Rails`.
- +Para realizar desarrollo de nuevas funcionalidades del sistema en la máquina
- +local, es necesario realizar la configuración del ambiente de desarrollo con `Ruby On Rails`.
- -### Lenguaje de programación y base de datos
- +### Tecnologías utilizadas
- -* Lenguaje de programación: `Ruby 2.1`
- -* Framework para Web: `Ruby On Rails 4.1`
- +* Lenguaje de programación: `Ruby`
- +* Framework para Web: `Ruby On Rails`
- * Base de datos: `MySQL`
- ### git-flow
- -El flujo de trabajo se está manejando con [git-flow](https://github.com/nvie/gitflow). El desarrollo se organiza en dos ramas principales:
- +El flujo de trabajo está manejado con [git-flow](https://github.com/nvie/gitflow).
- +El desarrollo se organiza en dos ramas principales:
- -* Rama `master`: cualquier commit que pongamos en esta rama debe estar preparado para subir a producción
- -* Rama `develop`: rama en la que está el código que conformará la siguiente versión planificada del proyecto
- -
- -### Ruby
- -
- -Instalando [Ruby Version Manager - RVM](https://rvm.io/)
- -
- -```console
- -curl -L get.rvm.io | bash -s stable
- -```
- -
- -Recargar el comando `rvm`
- -
- -```console
- -source ~/.rvm/scripts/rvm
- -```
- -
- -Instalando [Ruby](https://www.ruby-lang.org/)
- -
- -```console
- -rvm install 2.1
- -```
- -
- -Estableciendo la versión de `Ruby` por defecto
- -
- -```console
- -rvm use 2.1 --default
- -```
- -
- -Evitar que se instale `ri` y `rdoc`
- -
- -```console
- -echo "gem: --no-document" > ~/.gemrc
- -```
- -
- -Instalar `RubyGems`
- -
- -```console
- -rvm rubygems current
- -```
- +* Rama `master`: cualquier commit que pongamos en esta rama debe estar preparado
- +para subir a producción
- +* Rama `develop`: rama en la que está el código que conformará la siguiente
- +versión planificada del proyecto
- ### Conversión de formatos
- -Éste sistema depende del API de Conversión de Formatos para la importación de archivos `DBF`, cuyo repositorio es https://gitlab.geo.gob.bo/bolivia-libre/conversion-formatos
- -
- -La instalación del API de Conversión de Formatos está descrita en el archivo [INSTALL.md](https://gitlab.geo.gob.bo/bolivia-libre/conversion-formatos/blob/master/INSTALL.md)
- -
- -### Código fuente
- -
- -En la máquina local clonamos el repositorio del Sistema de Activos Fijos y Almacenes
- -
- -```console
- -git clone git@gitlab.geo.gob.bo:adsib/nsiaf.git
- -```
- -
- -Cambiar al branch `develop` que es el de desarrollo
- -
- -```console
- -cd nsiaf
- -git checkout develop
- -```
- -
- -Creación de un `gemset` para las gemas con `RVM`
- -
- -```console
- -rvm use 2.1@nsiaf --create --ruby-version
- -```
- -
- -Copiamos los archivos de ejemplo
- -
- -```console
- -cp config/database.yml.sample config/database.yml
- -cp config/secrets.yml.sample config/secrets.yml
- -```
- -
- -Editar `config/database.yml` con el siguiente contenido
- -
- -```yaml
- -development:
- - adapter: mysql2
- - encoding: utf8
- - database: nsiaf_development
- - pool: 5
- - username: root
- - password: root
- - socket: /var/run/mysqld/mysqld.sock
- -```
- -
- -Editar `config/secrets.yml` con el siguiente contenido
- -
- -```yaml
- -development:
- - convert_api_url: 'http://localhost/conversion-formatos'
- - rails_relative_url_root: ''
- - secret_key_base: d7c345615c14afe85dd35d9169e9743c4f24de413990b3133b93865f1f5f490db6a3c1327e9a5af3fc845937a7f489bbda865a25caa424144580d2d106cb121c
- -```
- -
- -Instalar las gemas
- -
- -```console
- -bundle install
- -```
- -
- -Crear la base de datos e inicializar con la configuración por defecto
- -
- -```console
- -bundle exec rake db:create
- -bundle exec rake db:migrate
- -bundle exec rake db:seed
- -```
- -
- -### Servidor web
- +Éste sistema depende del API de Conversión de Formatos para la importación de
- +archivos `DBF`, esto con el objetivo de utilizar los datos de la aplicación
- +[VSIAF](http://www.economiayfinanzas.gob.bo/index.php?opcion=com_contenido&ver=contenido&id=2100&id_item=626)
- +proporcionado por el Ministerio de Economía y Finanzas.
- -Iniciar el servidor en modo desarrollo
- +El repositorio es https://gitlab.geo.gob.bo/bolivia-libre/conversion-formatos y
- +la instalación del API de Conversión de Formatos está descrito en el archivo
- +[INSTALL.md](https://gitlab.geo.gob.bo/bolivia-libre/conversion-formatos/blob/master/INSTALL.md)
- -```console
- -rails server
- -```
- +### Migración a PostgreSQL
- -y visitar en el navegador el link `http://localhost:3000`
- +Desde la versión 2.0.0, el Sistema de Activos Fijos y Almacenes hace uso de
- +PostgreSQL, cuyo manual de migración está descrito en el archivo
- +[doc/MIGRACION_A_POSTGRESQL.md](doc/MIGRACION_A_POSTGRESQL.md).
- diff --git a/bin/rails b/bin/rails
- index 4d608ed..5191e69 100755
- --- a/bin/rails
- +++ b/bin/rails
- @@ -1,8 +1,4 @@
- #!/usr/bin/env ruby
- -begin
- - load File.expand_path("../spring", __FILE__)
- -rescue LoadError
- -end
- APP_PATH = File.expand_path('../../config/application', __FILE__)
- require_relative '../config/boot'
- require 'rails/commands'
- diff --git a/bin/rake b/bin/rake
- index 8017a02..1724048 100755
- --- a/bin/rake
- +++ b/bin/rake
- @@ -1,8 +1,4 @@
- #!/usr/bin/env ruby
- -begin
- - load File.expand_path("../spring", __FILE__)
- -rescue LoadError
- -end
- require_relative '../config/boot'
- require 'rake'
- Rake.application.run
- diff --git a/config/environments/production.rb b/config/environments/production.rb
- index 2aa88a8..5c1b32e 100644
- --- a/config/environments/production.rb
- +++ b/config/environments/production.rb
- @@ -46,7 +46,7 @@ Rails.application.configure do
- # Use the lowest log level to ensure availability of diagnostic information
- # when problems arise.
- - config.log_level = :info
- + config.log_level = :debug
- # Prepend all log lines with the following tags.
- # config.log_tags = [ :subdomain, :uuid ]
- diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb
- index 54516e3..7f70458 100644
- --- a/config/initializers/cookies_serializer.rb
- +++ b/config/initializers/cookies_serializer.rb
- @@ -1,3 +1,3 @@
- # Be sure to restart your server when you modify this file.
- -Rails.application.config.action_dispatch.cookies_serializer = :hybrid
- +Rails.application.config.action_dispatch.cookies_serializer = :json
- diff --git a/doc/MIGRACION_A_POSTGRESQL.md b/doc/MIGRACION_A_POSTGRESQL.md
- new file mode 100644
- index 0000000..2e52e9c
- --- /dev/null
- +++ b/doc/MIGRACION_A_POSTGRESQL.md
- @@ -0,0 +1,152 @@
- +# Migración de MySQL a PostgreSQL
- +
- +Actualmente el sistema de Activos Fijos y Almacenes funciona sobre MySQL, y
- +a continuación se describe una herramienta para migrar de MySQL a PostgreSQL que
- +se llama Taps, el cual habilita un servidor y mediante su API se puede realizar
- +la migración a otra base de datos en este caso a PostgreSQL.
- +
- +## Dependencias
- +
- +```console
- +sudo apt-get install -y curl
- +sudo apt-get install -y libpq-dev
- +sudo apt-get install -y libmysqlclient-dev
- +```
- +
- +## Ruby
- +
- +```console
- +gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
- +```
- +
- +```console
- +\curl -sSL https://get.rvm.io | bash
- +source ~/.rvm/scripts/rvm
- +
- +rvm install 2.1.9
- +rvm use 2.1.9 --default
- +
- +echo "gem: --no-document" > ~/.gemrc
- +```
- +
- +## Servidor MySQL origen
- +
- +* En el servidor remoto habilitar acceso a MySQL:
- +
- +```console
- +sudo editor /etc/mysql/my.cnf
- +```
- +
- +comentar la línea `bind-address = 127.0.0.1`
- +
- +* Dar permisos al permiso de base de datos:
- +
- +```console
- +mysql -u root nsiaf_agetic -p
- +
- +GRANT ALL PRIVILEGES ON *.* TO 'activos'@'%'
- +IDENTIFIED BY 'password-secreto' WITH GRANT OPTION;
- +```
- +
- +* Probar la conexión desde local:
- +
- +```console
- +mysql -u activos -p -h ip.host.remoto
- +```
- +
- +* Reiniciar servidor
- +
- +```console
- +sudo service mysql restart
- +```
- +
- +## Servidor PostgreSQL destino
- +
- +* En el servidor remoto habilitar acceso a PostgreSQL
- +
- +```console
- +sudo editor /etc/postgresql/9.4/main/postgresql.conf
- +```
- +
- +habilitar la línea `listen_addresses = '*'`
- +
- +```console
- +sudo editor /etc/postgresql/9.4/main/pg_hba.conf
- +```
- +
- +en la sección IPv4 adicionar la IP del servidor Taps:
- +
- +```postgresql
- +host all all 192.168.27.228/32 md5
- +```
- +
- +* Reiniciar servidor
- +
- +```console
- +sudo service postgresql restart
- +```
- +
- +## Taps
- +
- +* Preparando servidor Taps
- +
- +```console
- +cd
- +mkdir migracion
- +cd migracion
- +rvm use 2.1.9@migracion --create --ruby-version
- +
- +echo "source 'https://rubygems.org'" > Gemfile
- +echo "gem 'pg'" >> Gemfile
- +echo "gem 'mysql2'" >> Gemfile
- +echo "gem 'mysql-pr'" >> Gemfile
- +echo "gem 'taps-taps'" >> Gemfile
- +```
- +
- +* Instalar gemas
- +
- +```console
- +gem install bundler
- +bundle install
- +```
- +
- +* Iniciar servidor
- +
- +```console
- +export HOST_TAPS=localhost
- +export USUARIO=user
- +export PASSWORD=pass123
- +export HOST_REMOTO_ORIGEN=192.168.21.244
- +export HOST_REMOTO_DESTINO=192.168.21.244
- +
- +taps server mysql2://activos:password-secreto@$HOST_REMOTO_ORIGEN/nsiaf_agetic $USUARIO $PASSWORD
- +```
- +
- +* Realizar la migración a la base de datos destino (en otra terminal)
- +
- +```
- +cd
- +cd migracion
- +
- +(copiar todos los export anteriores)
- +
- +taps pull postgres://postgres:postgres@$HOST_REMOTO_DESTINO/nsiaf_production http://$USUARIO:$PASSWORD@$HOST_TAPS:5000
- +```
- +
- +## Tareas post-migración
- +
- +### Conexión a PostgreSQL
- +
- +Es necesario cambiar la configuración de base de datos del sistema a PostgreSQL
- +
- +```yml
- +production:
- + adapter: postgresql
- + encoding: unicode
- + pool: 5
- + database: nsiaf_production
- + username: postgres
- + password: postgres
- + host: localhost
- + port: 5432
- +```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement