diff --git a/app/models/usuarie.rb b/app/models/usuarie.rb new file mode 100644 index 00000000..38372ef0 --- /dev/null +++ b/app/models/usuarie.rb @@ -0,0 +1,3 @@ +# Usuarie de la plataforma +class Usuarie < ApplicationRecord +end diff --git a/db/migrate/20190703190859_create_usuarie.rb b/db/migrate/20190703190859_create_usuarie.rb new file mode 100644 index 00000000..8b3cf247 --- /dev/null +++ b/db/migrate/20190703190859_create_usuarie.rb @@ -0,0 +1,70 @@ +# Crea Usuaries y migra lxs Invitadxs pre-existentes. +class CreateUsuarie < ActiveRecord::Migration[5.2] + def up + create_table :usuaries do |t| + t.timestamps + t.string :email, null: false, default: '' + t.string :encrypted_password, null: false, default: '' + + ## Recoverable + t.string :reset_password_token + t.datetime :reset_password_sent_at + + ## Rememberable + t.datetime :remember_created_at + + ## Confirmable + t.string :confirmation_token + t.datetime :confirmed_at + t.datetime :confirmation_sent_at + t.string :unconfirmed_email # Only if using reconfirmable + + ## Lockable + # Only if lock strategy is :failed_attempts + t.integer :failed_attempts, default: 0, null: false + # Only if unlock strategy is :email or :both + t.string :unlock_token + t.datetime :locked_at + + t.boolean :acepta_politicas_de_privacidad, default: false + end + + add_index :usuaries, :email, unique: true + add_index :usuaries, :reset_password_token, unique: true + add_index :usuaries, :confirmation_token, unique: true + add_index :usuaries, :unlock_token, unique: true + + Invitadx.all.find_each do |i| + Usuarie.create email: i.email, + encrypted_password: i.password_digest, + acepta_politicas_de_privacidad: i.acepta_politicas_de_privacidad, + confirmed_at: i.confirmed ? i.updated_at : nil, + updated_at: i.updated_at, + created_at: i.created_at + end + + drop_table :invitadxs + end + + def down + create_table :invitadxs do |t| + t.timestamps + t.string :password_digest + t.string :email, unique: true, index: true + t.string :confirmation_token + t.boolean :confirmed + t.boolean :acepta_politicas_de_privacidad, default: false + end + + Usuarie.all.find_each do |i| + Invitadx.create email: i.email, + password_digest: i.encrypted_password, + acepta_politicas_de_privacidad: i.acepta_politicas_de_privacidad, + confirmed: !i.confirmed_at.nil?, + updated_at: i.updated_at, + created_at: i.created_at + end + + drop_table :usuaries + end +end diff --git a/db/schema.rb b/db/schema.rb new file mode 100644 index 00000000..2fa39fab --- /dev/null +++ b/db/schema.rb @@ -0,0 +1,38 @@ +# This file is auto-generated from the current state of the database. +# Instead of editing this file, please use the migrations feature of +# Active Record to incrementally modify your database, and then +# regenerate this schema definition. +# +# Note that this schema.rb definition is the authoritative source for +# your database schema. If you need to create the application database +# on another system, you should be using db:schema:load, not running all +# the migrations from scratch. The latter is a flawed and unsustainable +# approach (the more migrations you'll amass, the slower it'll run and +# the greater likelihood for issues). +# +# It's strongly recommended that you check this file into your version +# control system. + +ActiveRecord::Schema.define(version: 20_190_703_190_859) do + create_table 'usuaries', force: :cascade do |t| + t.datetime 'created_at', null: false + t.datetime 'updated_at', null: false + t.string 'email', default: '', null: false + t.string 'encrypted_password', default: '', null: false + t.string 'reset_password_token' + t.datetime 'reset_password_sent_at' + t.datetime 'remember_created_at' + t.string 'confirmation_token' + t.datetime 'confirmed_at' + t.datetime 'confirmation_sent_at' + t.string 'unconfirmed_email' + t.integer 'failed_attempts', default: 0, null: false + t.string 'unlock_token' + t.datetime 'locked_at' + t.boolean 'acepta_politicas_de_privacidad', default: false + t.index ['confirmation_token'], name: 'index_usuaries_on_confirmation_token', unique: true + t.index ['email'], name: 'index_usuaries_on_email', unique: true + t.index ['reset_password_token'], name: 'index_usuaries_on_reset_password_token', unique: true + t.index ['unlock_token'], name: 'index_usuaries_on_unlock_token', unique: true + end +end