Version 3 (modified by aosorio, 8 years ago) (diff) |
---|
Diaspora Installation/Debian/Wheezy? official
https://wiki.diasporafoundation.org/Installation/Debian/Wheezy?db=postgres&mode=development
*Database: PostgreSQL *Running mode: Development
Diaspora Installation/Debian/Jessie? official
https://wiki.diasporafoundation.org/Installation/Debian/Jessie?db=postgres&mode=development
*Database: PostgreSQL *Running mode: Development
Get the source - Diaspora
$ git clone https://github.com/diaspora/diaspora.git $ cd diaspora
Configuration
Copy files
$ cp config/database.yml.example config/database.yml $ cp config/diaspora.yml.example config/diaspora.yml
Configure
Bundle
It's time to install the Ruby libraries required by Diaspora:
$ gem install bundler $ bin/bundle install --with postgresql
Database setup
Double check your config/database.yml looks right and run:
$ bin/rake db:create db:schema:load $ DB=postgres bin/rake db:create db:schema:load // Especificánde la DB. $ DB=postgres bin/rake db:schema:load // Cuando ya tenemos la db creada.
Start Diaspora
It's time to start Diaspora:
$ ./script/server $ DB=postgres ./script/server // Especificándo la base de datos, para saltarse algunas notificaciones.
Server diaspora running
$ run -p 3001 // Usando otro puerto, 3000 el predeterminado
Instalación de RedSur? desde los repositorios de cenditel
$ git clone https://mayaguaray.cenditel.gob.ve/desarrollo/scm/git/redsur.git
Hay que crear los ficheros diaspora.yml y database.yml a partir de los .example que ya vienen por defecto.
En el database.yml modificar el nombre de la base de datos y el usaurio:
postgres: &postgres adapter: postgresql host: localhost port: 5432 username: redsur_desarrollo password: 123456 encoding: unicode
Además especificar que se va a trabajar con postgresql:
common: &common # Choose one of the following #<<: *mysql <<: *postgres
y tambien especificar la db development:
development: <<: *combined database: redsur_desarrollo
Configurar url
En diaspora.yml modificar la URL para que las imágenes que se guardan en la base de datos tengan la dirección especificada.
Pondremos la dirección donde correra nuestro servidor local, ejemplo:
url: "http://192.168.12.xxx:3000"
Desactivar el captcha
## Enable captcha (default=true) ## Set this to false if you don't want to use captcha for signup process. enable: false
Otros
Al momento de hacer el:
$ gem install bundler $ DB=postgres bundle install // Para que no de error con mysql $ bin/bundle install --with postgresql // Opcional al primero
Puede presentar problemas con la instalación del Mysql por lo que se puede comentar esa línea en el Gemfile.
ENV['DB'] ||= 'mysql' #gem 'mysql2', '0.3.18' if ENV['DB'] == 'all' || ENV['DB'] == 'mysql' gem 'pg', '0.18.1' if ENV['DB'] == 'all' || ENV['DB'] == 'postgres'
Especificar la versión de rvm a usar
$ rvm use 2.2 $ DB=postgres bin/rake db:migrate RAILS_ENV=development // Creando los esquemas en la db, sobre todo si se agregó un nuevo modelo al esquema, alguna modificación. $ DB=postgres bundle exec rake db:migrate RAILS_ENV=development // Saltar error de migracion si es necesario, spring, otros... $ DB=postgres ./script/server
Creando un nuevo modelo
- Se agregó un nuevo modelo que corresponde a las Areas de Texto de las
Poll: poll_text_area.rb
Este modelo tiene una relación uno-a-muchos (has_many -- belongs_to) con el modelo Poll.rb (el cual, a su vez, tiene la misma relación con el modelo StatusMessage?.rb.)
Comando para crear los modelos
$ DB=postgres rails generate model PollTextArea text:text
Luego modificar el modelo creado.
Generar la migración necesaria para crear asosioaciones entre la instancia creada y su raíz.
$ DB=postgres rails g migration AddPollTextAreaToPoll poll:belongs_to $ DB=postgres rails g migration AddPollToPollTextArea poll:belongs_to $ DB=postgres bin/rake db:migrate:status // Chequear las migraciones realizadas, cuales se levantaron y cuales estan pendientes o fallaron $ DB=postgres bin/rake db:migrate RAILS_ENV=development // Para levantar las migraciones creadas, si hay conflictos, se puede borrar el campo de la tabla y volver a migrar, por lo general poll_id from polls.
- Además se modificaron otros modelos.
- El controlador status_messages_controller.rb recibe de
publisher_view.js (backbone) los parámetros de los controles (p.ej. las areas de texto) a partir de los cuales debe crear las instancias de los modelos (p.ej. el modelo en rails para las areas de texto) que tienen la relación uno-a-muchos (has_many -- belongs_to).
Generar la migración necesaria para agregar el area de texto a las tablas correspondientes
$ DB=postgres rails g migration AddPollTextAreaToPoll poll:belongs_to $ DB=postgres rails g migration AddPollToPollTextArea poll:belongs_to
Añadiendo nuevo atributo al profile
$ DB=postgres rails g migration AddIsgroupToProfiles
Modificar la nueva migracion en /db/migrate --> xxxxxxxxxxxxxx_add_isgroup_to_profiles.rb
class AddIsgroupToProfiles < ActiveRecord::Migration def change add_column :profiles, :isgroup, :boolean end end
$ DB=postgres rails g migration AddFrontimageToProfiles
class AddFrontimageToProfiles < ActiveRecord::Migration def change add_column :profiles, :front_image, :string end end
$ DB=postgres bin/rake db:migrate RAILS_ENV=development
$ DB=postgres bin/rake db:migrate:status // Chequear las migraciones realizadas, cuales se levantaron y cuales estan pendientes o fallaron $ bin/rails db:rollback STEP=X // Para moverse entre los estados de las migraciones donde X es el numero a retroceder
Otros
migrations:
20160304155505_create_poll_text_areas.rb 20160304155931_add_poll_text_area_to_poll.rb 20160308141727_add_poll_to_poll_text_areas.rb 20160406134129_create_poll_text_area_largas.rb 20160406172007_add_poll_text_area_larga_to_poll.rb 20160406172030_add_poll_to_poll_text_area_larga.rb
Desactivar la confirmacion via mail de las cuentas creadas
(app/models/user.rb) // Editar el fichero devise :confirmable, :token_authenticatable, :database_authenticatable, :registerable... Quítale el ":confirmable" de modo que quede así: devise :token_authenticatable, :database_authenticatable, :registerable.... devise :confirmable, :token_authenticatable, :database_authenticatable, :registerable...
$ gem uninstall <gem-name> // Desinstalar una gema específica, a veces hay conflictos entre versiones de gemas a usar en el proyecto y las gemas instaladas.
Varios
Desactivar aspectos predeterminados de los usuarios En app/controllers/registrations_controller.rb comentar linea 16
#@user.seed_aspects
Borrar usuario de la db: borrar los registros del usuario en la tabla users y en people, queda guardado registro en diaspora_handle.
redsur/app/assets/templates/profile_header_tpl.jst.hbs // Banner grupo, boton edit_profile... redsur/app/assets/stylesheets$ vim profile.scss // Estilos del perfil de usuario diaspora@debian:~/redsur/app/assets/templates$ vim profile_sidebar_tpl.jst.hbs // Bio y demás diaspora@debian:~/redsur/app/assets/templates$ vim profile_header_tpl.jst.hbs // Baner grupo etc... /home/diaspora/redsur/app/views/contacts // Plantillas de Contacts diaspora@debian:~/redsur/app/assets/templates$ vim contact_tpl.jst.hbs // Mis contactos, avatar, boton etc. gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB8 // Clave publica Michal Papis: diaspora@debian:~/redsur/app/views/streams$ vim main_stream.html.haml // miniaturs de contactos en right section stream. diaspora@debian:~/redsur/app/assets/templates$ vim stream-faces_tpl.jst.hbs // subcapa usuarios miniaturas stream profile_sidebar_view.js stream_faces_view.js profile_sidebar_tpl.jst.hbs profile.js router.js stream-faces_tpl.jst.hbs
Gema de autenticación
Para el rest se implementará la autenticación con "tokens" mediante la gema (devise_token_auth)
In Gemfile
# Authentication gem "devise_token_auth"
postrequest.py
#! coding: utf-8 import httplib, urllib import json params = json.dumps({"utf8":"✓", "authenticity_token":"", "user":{"email":"dieciocho@quince.org", "username":"dieciocho", "password":"123456", "password_confirmation":"123456"}, "commit":"Sign up","profile":{"first_name":"JorgeJORGE", "last_name":"RedondoREDONDO", "gender":"M", "bio":"Bio de prueba más bio", "searchable":"true", "location":"Mérida", "nsfw":"true", "public_details":"false", "tag_string":"#cría #cultivo", "date":{"year":"1979", "month":"10", "day":"4"}}}) headers = { "Content-Type": "application/json", "Accept": "*/*"} host = "192.168.12.156" port = 3000 conn = httplib.HTTPConnection(host,port) conn.request("POST", "/users", params, headers) response = conn.getresponse() print "Response: " print response.status, response.reason, print "Body: " print response.read() conn.close()
Agregando el nuevo campo phone al profile del user
$ DB=postgres rails g migration AddPhoneToProfiles
Editamos el diaspora/db/migrate/20161121193410_add_phone_to_profiles.rb
class AddPhoneToProfiles < ActiveRecord::Migration def change add_column :profiles, :phone, :string end end
Luego migramos...
$ DB=postgres bin/rake db:migrate RAILS_ENV=development
Chequeamos las migraciones...
$ DB=postgres bin/rake db:migrate:status
Si realizó correctamente la migración nos mostrará...
. . . up 20160307142216 Cleanup handles up 20160327103605 Add author id index to participations up 20161121193410 Add phone to profiles
Y en la tabla Profiles de la db debe aparecer el campo:
phone | character varying