Loading db/migrate/20160810230114_cleanup_invitation_columns_from_users.rb 0 → 100644 +74 −0 Original line number Diff line number Diff line class CleanupInvitationColumnsFromUsers < ActiveRecord::Migration class User < ActiveRecord::Base end def change remove_index :users, column: %i(invitation_service invitation_identifier), name: :index_users_on_invitation_service_and_invitation_identifier, unique: true, length: {invitation_service: 64} remove_index :users, column: :invitation_token, name: :index_users_on_invitation_token remove_index :users, column: :email, name: :index_users_on_email, length: 191 username_not_null remove_column :users, :invitation_token, :string, limit: 60 remove_column :users, :invitation_sent_at, :datetime remove_column :users, :invitation_service, :string, limit: 127 remove_column :users, :invitation_identifier, :string, limit: 127 remove_column :users, :invitation_limit, :integer remove_column :users, :invited_by_type, :string add_index :users, :email, name: :index_users_on_email, unique: true, length: 191 drop_invitations_table end def username_not_null reversible do |dir| dir.up do User.delete_all(username: nil) change_column :users, :username, :string, null: false end dir.down do change_column :users, :username, :string, null: true end end end def drop_invitations_table reversible do |dir| dir.up do drop_table :invitations end dir.down do create_invitations_table end end end def create_invitations_table # rubocop:disable Style/ExtraSpacing create_table :invitations, force: :cascade do |t| t.text :message, limit: 65_535 t.integer :sender_id, limit: 4 t.integer :recipient_id, limit: 4 t.integer :aspect_id, limit: 4 t.datetime :created_at, null: false t.datetime :updated_at, null: false t.string :service, limit: 255 t.string :identifier, limit: 255 t.boolean :admin, default: false t.string :language, limit: 255, default: "en" end # rubocop:enable Style/ExtraSpacing add_index :invitations, :aspect_id, name: :index_invitations_on_aspect_id, using: :btree add_index :invitations, :recipient_id, name: :index_invitations_on_recipient_id, using: :btree add_index :invitations, :sender_id, name: :index_invitations_on_sender_id, using: :btree add_foreign_key :invitations, :users, column: :recipient_id, name: :invitations_recipient_id_fk, on_delete: :cascade add_foreign_key :invitations, :users, column: :sender_id, name: :invitations_sender_id_fk, on_delete: :cascade end end db/schema.rb +3 −30 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. ActiveRecord::Schema.define(version: 20160807212443) do ActiveRecord::Schema.define(version: 20160810230114) do create_table "account_deletions", force: :cascade do |t| t.string "diaspora_handle", limit: 255 Loading Loading @@ -178,23 +178,6 @@ ActiveRecord::Schema.define(version: 20160807212443) do t.datetime "updated_at", null: false end create_table "invitations", force: :cascade do |t| t.text "message", limit: 65535 t.integer "sender_id", limit: 4 t.integer "recipient_id", limit: 4 t.integer "aspect_id", limit: 4 t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "service", limit: 255 t.string "identifier", limit: 255 t.boolean "admin", default: false t.string "language", limit: 255, default: "en" end add_index "invitations", ["aspect_id"], name: "index_invitations_on_aspect_id", using: :btree add_index "invitations", ["recipient_id"], name: "index_invitations_on_recipient_id", using: :btree add_index "invitations", ["sender_id"], name: "index_invitations_on_sender_id", using: :btree create_table "like_signatures", id: false, force: :cascade do |t| t.integer "like_id", limit: 4, null: false t.text "author_signature", limit: 65535, null: false Loading Loading @@ -624,15 +607,13 @@ ActiveRecord::Schema.define(version: 20160807212443) do end create_table "users", force: :cascade do |t| t.string "username", limit: 255 t.string "username", limit: 255, null: false t.text "serialized_private_key", limit: 65535 t.boolean "getting_started", default: true, null: false t.boolean "disable_mail", default: false, null: false t.string "language", limit: 255 t.string "email", limit: 255, default: "", null: false t.string "encrypted_password", limit: 255, default: "", null: false t.string "invitation_token", limit: 60 t.datetime "invitation_sent_at" t.string "reset_password_token", limit: 255 t.datetime "remember_created_at" t.integer "sign_in_count", limit: 4, default: 0 Loading @@ -642,11 +623,7 @@ ActiveRecord::Schema.define(version: 20160807212443) do t.string "last_sign_in_ip", limit: 255 t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "invitation_service", limit: 127 t.string "invitation_identifier", limit: 127 t.integer "invitation_limit", limit: 4 t.integer "invited_by_id", limit: 4 t.string "invited_by_type", limit: 255 t.string "authentication_token", limit: 30 t.string "unconfirmed_email", limit: 255 t.string "confirm_email_token", limit: 30 Loading @@ -669,9 +646,7 @@ ActiveRecord::Schema.define(version: 20160807212443) do end add_index "users", ["authentication_token"], name: "index_users_on_authentication_token", unique: true, using: :btree add_index "users", ["email"], name: "index_users_on_email", length: {"email"=>191}, using: :btree add_index "users", ["invitation_service", "invitation_identifier"], name: "index_users_on_invitation_service_and_invitation_identifier", unique: true, length: {"invitation_service"=>64, "invitation_identifier"=>nil}, using: :btree add_index "users", ["invitation_token"], name: "index_users_on_invitation_token", using: :btree add_index "users", ["email"], name: "index_users_on_email", unique: true, length: {"email"=>191}, using: :btree add_index "users", ["username"], name: "index_users_on_username", unique: true, length: {"username"=>191}, using: :btree add_foreign_key "aspect_memberships", "aspects", name: "aspect_memberships_aspect_id_fk", on_delete: :cascade Loading @@ -687,8 +662,6 @@ ActiveRecord::Schema.define(version: 20160807212443) do add_foreign_key "conversation_visibilities", "people", name: "conversation_visibilities_person_id_fk", on_delete: :cascade add_foreign_key "conversations", "people", column: "author_id", name: "conversations_author_id_fk", on_delete: :cascade add_foreign_key "id_tokens", "authorizations" add_foreign_key "invitations", "users", column: "recipient_id", name: "invitations_recipient_id_fk", on_delete: :cascade add_foreign_key "invitations", "users", column: "sender_id", name: "invitations_sender_id_fk", on_delete: :cascade add_foreign_key "like_signatures", "likes", name: "like_signatures_like_id_fk", on_delete: :cascade add_foreign_key "like_signatures", "signature_orders", name: "like_signatures_signature_orders_id_fk" add_foreign_key "likes", "people", column: "author_id", name: "likes_author_id_fk", on_delete: :cascade Loading Loading
db/migrate/20160810230114_cleanup_invitation_columns_from_users.rb 0 → 100644 +74 −0 Original line number Diff line number Diff line class CleanupInvitationColumnsFromUsers < ActiveRecord::Migration class User < ActiveRecord::Base end def change remove_index :users, column: %i(invitation_service invitation_identifier), name: :index_users_on_invitation_service_and_invitation_identifier, unique: true, length: {invitation_service: 64} remove_index :users, column: :invitation_token, name: :index_users_on_invitation_token remove_index :users, column: :email, name: :index_users_on_email, length: 191 username_not_null remove_column :users, :invitation_token, :string, limit: 60 remove_column :users, :invitation_sent_at, :datetime remove_column :users, :invitation_service, :string, limit: 127 remove_column :users, :invitation_identifier, :string, limit: 127 remove_column :users, :invitation_limit, :integer remove_column :users, :invited_by_type, :string add_index :users, :email, name: :index_users_on_email, unique: true, length: 191 drop_invitations_table end def username_not_null reversible do |dir| dir.up do User.delete_all(username: nil) change_column :users, :username, :string, null: false end dir.down do change_column :users, :username, :string, null: true end end end def drop_invitations_table reversible do |dir| dir.up do drop_table :invitations end dir.down do create_invitations_table end end end def create_invitations_table # rubocop:disable Style/ExtraSpacing create_table :invitations, force: :cascade do |t| t.text :message, limit: 65_535 t.integer :sender_id, limit: 4 t.integer :recipient_id, limit: 4 t.integer :aspect_id, limit: 4 t.datetime :created_at, null: false t.datetime :updated_at, null: false t.string :service, limit: 255 t.string :identifier, limit: 255 t.boolean :admin, default: false t.string :language, limit: 255, default: "en" end # rubocop:enable Style/ExtraSpacing add_index :invitations, :aspect_id, name: :index_invitations_on_aspect_id, using: :btree add_index :invitations, :recipient_id, name: :index_invitations_on_recipient_id, using: :btree add_index :invitations, :sender_id, name: :index_invitations_on_sender_id, using: :btree add_foreign_key :invitations, :users, column: :recipient_id, name: :invitations_recipient_id_fk, on_delete: :cascade add_foreign_key :invitations, :users, column: :sender_id, name: :invitations_sender_id_fk, on_delete: :cascade end end
db/schema.rb +3 −30 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. ActiveRecord::Schema.define(version: 20160807212443) do ActiveRecord::Schema.define(version: 20160810230114) do create_table "account_deletions", force: :cascade do |t| t.string "diaspora_handle", limit: 255 Loading Loading @@ -178,23 +178,6 @@ ActiveRecord::Schema.define(version: 20160807212443) do t.datetime "updated_at", null: false end create_table "invitations", force: :cascade do |t| t.text "message", limit: 65535 t.integer "sender_id", limit: 4 t.integer "recipient_id", limit: 4 t.integer "aspect_id", limit: 4 t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "service", limit: 255 t.string "identifier", limit: 255 t.boolean "admin", default: false t.string "language", limit: 255, default: "en" end add_index "invitations", ["aspect_id"], name: "index_invitations_on_aspect_id", using: :btree add_index "invitations", ["recipient_id"], name: "index_invitations_on_recipient_id", using: :btree add_index "invitations", ["sender_id"], name: "index_invitations_on_sender_id", using: :btree create_table "like_signatures", id: false, force: :cascade do |t| t.integer "like_id", limit: 4, null: false t.text "author_signature", limit: 65535, null: false Loading Loading @@ -624,15 +607,13 @@ ActiveRecord::Schema.define(version: 20160807212443) do end create_table "users", force: :cascade do |t| t.string "username", limit: 255 t.string "username", limit: 255, null: false t.text "serialized_private_key", limit: 65535 t.boolean "getting_started", default: true, null: false t.boolean "disable_mail", default: false, null: false t.string "language", limit: 255 t.string "email", limit: 255, default: "", null: false t.string "encrypted_password", limit: 255, default: "", null: false t.string "invitation_token", limit: 60 t.datetime "invitation_sent_at" t.string "reset_password_token", limit: 255 t.datetime "remember_created_at" t.integer "sign_in_count", limit: 4, default: 0 Loading @@ -642,11 +623,7 @@ ActiveRecord::Schema.define(version: 20160807212443) do t.string "last_sign_in_ip", limit: 255 t.datetime "created_at", null: false t.datetime "updated_at", null: false t.string "invitation_service", limit: 127 t.string "invitation_identifier", limit: 127 t.integer "invitation_limit", limit: 4 t.integer "invited_by_id", limit: 4 t.string "invited_by_type", limit: 255 t.string "authentication_token", limit: 30 t.string "unconfirmed_email", limit: 255 t.string "confirm_email_token", limit: 30 Loading @@ -669,9 +646,7 @@ ActiveRecord::Schema.define(version: 20160807212443) do end add_index "users", ["authentication_token"], name: "index_users_on_authentication_token", unique: true, using: :btree add_index "users", ["email"], name: "index_users_on_email", length: {"email"=>191}, using: :btree add_index "users", ["invitation_service", "invitation_identifier"], name: "index_users_on_invitation_service_and_invitation_identifier", unique: true, length: {"invitation_service"=>64, "invitation_identifier"=>nil}, using: :btree add_index "users", ["invitation_token"], name: "index_users_on_invitation_token", using: :btree add_index "users", ["email"], name: "index_users_on_email", unique: true, length: {"email"=>191}, using: :btree add_index "users", ["username"], name: "index_users_on_username", unique: true, length: {"username"=>191}, using: :btree add_foreign_key "aspect_memberships", "aspects", name: "aspect_memberships_aspect_id_fk", on_delete: :cascade Loading @@ -687,8 +662,6 @@ ActiveRecord::Schema.define(version: 20160807212443) do add_foreign_key "conversation_visibilities", "people", name: "conversation_visibilities_person_id_fk", on_delete: :cascade add_foreign_key "conversations", "people", column: "author_id", name: "conversations_author_id_fk", on_delete: :cascade add_foreign_key "id_tokens", "authorizations" add_foreign_key "invitations", "users", column: "recipient_id", name: "invitations_recipient_id_fk", on_delete: :cascade add_foreign_key "invitations", "users", column: "sender_id", name: "invitations_sender_id_fk", on_delete: :cascade add_foreign_key "like_signatures", "likes", name: "like_signatures_like_id_fk", on_delete: :cascade add_foreign_key "like_signatures", "signature_orders", name: "like_signatures_signature_orders_id_fk" add_foreign_key "likes", "people", column: "author_id", name: "likes_author_id_fk", on_delete: :cascade Loading