diff options
Diffstat (limited to 'db')
7 files changed, 93 insertions, 9 deletions
diff --git a/db/migrate/20170427011934_re_add_owner_to_application.rb b/db/migrate/20170427011934_re_add_owner_to_application.rb new file mode 100644 index 000000000..a41d71d2a --- /dev/null +++ b/db/migrate/20170427011934_re_add_owner_to_application.rb @@ -0,0 +1,8 @@ +class ReAddOwnerToApplication < ActiveRecord::Migration[5.0] + def change + add_column :oauth_applications, :owner_id, :integer, null: true + add_column :oauth_applications, :owner_type, :string, null: true + add_index :oauth_applications, [:owner_id, :owner_type] + add_foreign_key :oauth_applications, :users, column: :owner_id, on_delete: :cascade + end +end diff --git a/db/migrate/20170823162448_create_status_pins.rb b/db/migrate/20170823162448_create_status_pins.rb new file mode 100644 index 000000000..9a6d4a7b9 --- /dev/null +++ b/db/migrate/20170823162448_create_status_pins.rb @@ -0,0 +1,10 @@ +class CreateStatusPins < ActiveRecord::Migration[5.1] + def change + create_table :status_pins do |t| + t.belongs_to :account, foreign_key: { on_delete: :cascade }, null: false + t.belongs_to :status, foreign_key: { on_delete: :cascade }, null: false + end + + add_index :status_pins, [:account_id, :status_id], unique: true + end +end diff --git a/db/migrate/20170824103029_add_timestamps_to_status_pins.rb b/db/migrate/20170824103029_add_timestamps_to_status_pins.rb new file mode 100644 index 000000000..09f0fbeaf --- /dev/null +++ b/db/migrate/20170824103029_add_timestamps_to_status_pins.rb @@ -0,0 +1,5 @@ +class AddTimestampsToStatusPins < ActiveRecord::Migration[5.1] + def change + add_timestamps :status_pins, null: false, default: -> { 'CURRENT_TIMESTAMP' } + end +end diff --git a/db/migrate/20170829215220_remove_status_pins_account_index.rb b/db/migrate/20170829215220_remove_status_pins_account_index.rb new file mode 100644 index 000000000..e0144242e --- /dev/null +++ b/db/migrate/20170829215220_remove_status_pins_account_index.rb @@ -0,0 +1,6 @@ +class RemoveStatusPinsAccountIndex < ActiveRecord::Migration[5.1] + def change + remove_index :status_pins, :account_id + remove_index :status_pins, :status_id + end +end diff --git a/db/migrate/20170901141119_truncate_preview_cards.rb b/db/migrate/20170901141119_truncate_preview_cards.rb new file mode 100644 index 000000000..4d9802f3b --- /dev/null +++ b/db/migrate/20170901141119_truncate_preview_cards.rb @@ -0,0 +1,30 @@ +class TruncatePreviewCards < ActiveRecord::Migration[5.1] + def up + rename_table :preview_cards, :deprecated_preview_cards + + create_table :preview_cards do |t| + t.string :url, default: '', null: false, index: { unique: true } + t.string :title, default: '', null: false + t.string :description, default: '', null: false + t.attachment :image + t.integer :type, default: 0, null: false + t.text :html, default: '', null: false + t.string :author_name, default: '', null: false + t.string :author_url, default: '', null: false + t.string :provider_name, default: '', null: false + t.string :provider_url, default: '', null: false + t.integer :width, default: 0, null: false + t.integer :height, default: 0, null: false + t.timestamps + end + end + + def down + if ActiveRecord::Base.connection.table_exists? 'deprecated_preview_cards' + drop_table :preview_cards + rename_table :deprecated_preview_cards, :preview_cards + else + raise ActiveRecord::IrreversibleMigration, 'Previous preview cards table has already been removed' + end + end +end diff --git a/db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb b/db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb new file mode 100644 index 000000000..be7f533b5 --- /dev/null +++ b/db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb @@ -0,0 +1,7 @@ +class CreateJoinTablePreviewCardsStatuses < ActiveRecord::Migration[5.1] + def change + create_join_table :preview_cards, :statuses do |t| + t.index [:status_id, :preview_card_id] + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 2501e451d..c3a2581e3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170720000000) do +ActiveRecord::Schema.define(version: 20170901142658) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -218,20 +218,20 @@ ActiveRecord::Schema.define(version: 20170720000000) do t.datetime "updated_at" t.boolean "superapp", default: false, null: false t.string "website" + t.integer "owner_id" + t.string "owner_type" + t.index ["owner_id", "owner_type"], name: "index_oauth_applications_on_owner_id_and_owner_type" t.index ["uid"], name: "index_oauth_applications_on_uid", unique: true end - create_table "preview_cards", id: :serial, force: :cascade do |t| - t.bigint "status_id" + create_table "preview_cards", force: :cascade do |t| t.string "url", default: "", null: false - t.string "title" - t.string "description" + t.string "title", default: "", null: false + t.string "description", default: "", null: false t.string "image_file_name" t.string "image_content_type" t.integer "image_file_size" t.datetime "image_updated_at" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false t.integer "type", default: 0, null: false t.text "html", default: "", null: false t.string "author_name", default: "", null: false @@ -240,7 +240,15 @@ ActiveRecord::Schema.define(version: 20170720000000) do t.string "provider_url", default: "", null: false t.integer "width", default: 0, null: false t.integer "height", default: 0, null: false - t.index ["status_id"], name: "index_preview_cards_on_status_id", unique: true + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["url"], name: "index_preview_cards_on_url", unique: true + end + + create_table "preview_cards_statuses", id: false, force: :cascade do |t| + t.bigint "preview_card_id", null: false + t.bigint "status_id", null: false + t.index ["status_id", "preview_card_id"], name: "index_preview_cards_statuses_on_status_id_and_preview_card_id" end create_table "reports", id: :serial, force: :cascade do |t| @@ -279,6 +287,14 @@ ActiveRecord::Schema.define(version: 20170720000000) do t.index ["thing_type", "thing_id", "var"], name: "index_settings_on_thing_type_and_thing_id_and_var", unique: true end + create_table "status_pins", force: :cascade do |t| + t.bigint "account_id", null: false + t.bigint "status_id", null: false + t.datetime "created_at", default: -> { "now()" }, null: false + t.datetime "updated_at", default: -> { "now()" }, null: false + t.index ["account_id", "status_id"], name: "index_status_pins_on_account_id_and_status_id", unique: true + end + create_table "statuses", force: :cascade do |t| t.string "uri" t.integer "account_id", null: false @@ -420,12 +436,14 @@ ActiveRecord::Schema.define(version: 20170720000000) do add_foreign_key "oauth_access_grants", "users", column: "resource_owner_id", on_delete: :cascade add_foreign_key "oauth_access_tokens", "oauth_applications", column: "application_id", on_delete: :cascade add_foreign_key "oauth_access_tokens", "users", column: "resource_owner_id", on_delete: :cascade - add_foreign_key "preview_cards", "statuses", on_delete: :cascade + add_foreign_key "oauth_applications", "users", column: "owner_id", on_delete: :cascade add_foreign_key "reports", "accounts", column: "action_taken_by_account_id", on_delete: :nullify add_foreign_key "reports", "accounts", column: "target_account_id", on_delete: :cascade add_foreign_key "reports", "accounts", on_delete: :cascade add_foreign_key "session_activations", "oauth_access_tokens", column: "access_token_id", on_delete: :cascade add_foreign_key "session_activations", "users", on_delete: :cascade + add_foreign_key "status_pins", "accounts", on_delete: :cascade + add_foreign_key "status_pins", "statuses", on_delete: :cascade add_foreign_key "statuses", "accounts", column: "in_reply_to_account_id", on_delete: :nullify add_foreign_key "statuses", "accounts", on_delete: :cascade add_foreign_key "statuses", "statuses", column: "in_reply_to_id", on_delete: :nullify |