From 6705b5225f4d31759d84b9b40faa865a7d879b0e Mon Sep 17 00:00:00 2001 From: "Stanko K.R." Date: Mon, 10 Nov 2025 12:44:19 +0100 Subject: [PATCH] Remove the untenanted database --- app/models/identity.rb | 2 +- app/models/magic_link.rb | 2 +- app/models/membership.rb | 2 +- app/models/session.rb | 2 +- app/models/untenanted_record.rb | 4 - config/database.yml | 23 +- .../20250924190529_create_identities.rb | 0 .../20250924190729_create_memberships.rb | 0 ...51007112917_create_identity_magic_links.rb | 0 .../20251015170934_move_email_to_identity.rb | 0 ...452_associate_magic_links_to_identities.rb | 0 .../20251024081104_create_sessions.rb | 0 ...1027131911_add_join_code_to_memberships.rb | 0 ...email_addresses_mandatory_on_identities.rb | 0 ...n_identity_id_and_tenant_to_memberships.rb | 0 db/schema.rb | 31 + db/schema_cache.yml | 2863 ----------------- db/untenanted_schema.rb | 55 - 18 files changed, 45 insertions(+), 2939 deletions(-) delete mode 100644 app/models/untenanted_record.rb rename db/{untenanted_migrate => migrate}/20250924190529_create_identities.rb (100%) rename db/{untenanted_migrate => migrate}/20250924190729_create_memberships.rb (100%) rename db/{untenanted_migrate => migrate}/20251007112917_create_identity_magic_links.rb (100%) rename db/{untenanted_migrate => migrate}/20251015170934_move_email_to_identity.rb (100%) rename db/{untenanted_migrate => migrate}/20251015173452_associate_magic_links_to_identities.rb (100%) rename db/{untenanted_migrate => migrate}/20251024081104_create_sessions.rb (100%) rename db/{untenanted_migrate => migrate}/20251027131911_add_join_code_to_memberships.rb (100%) rename db/{untenanted_migrate => migrate}/20251103125952_make_email_addresses_mandatory_on_identities.rb (100%) rename db/{untenanted_migrate => migrate}/20251105082803_add_unique_constraint_on_identity_id_and_tenant_to_memberships.rb (100%) delete mode 100644 db/schema_cache.yml delete mode 100644 db/untenanted_schema.rb diff --git a/app/models/identity.rb b/app/models/identity.rb index 99c90271f..09d29d87e 100644 --- a/app/models/identity.rb +++ b/app/models/identity.rb @@ -1,4 +1,4 @@ -class Identity < UntenantedRecord +class Identity < ApplicationRecord include Transferable has_many :memberships, dependent: :destroy diff --git a/app/models/magic_link.rb b/app/models/magic_link.rb index f596a2bd3..69961e9a5 100644 --- a/app/models/magic_link.rb +++ b/app/models/magic_link.rb @@ -1,4 +1,4 @@ -class MagicLink < UntenantedRecord +class MagicLink < ApplicationRecord CODE_LENGTH = 6 EXPIRATION_TIME = 15.minutes diff --git a/app/models/membership.rb b/app/models/membership.rb index ac6e99c50..30cd658c2 100644 --- a/app/models/membership.rb +++ b/app/models/membership.rb @@ -1,4 +1,4 @@ -class Membership < UntenantedRecord +class Membership < ApplicationRecord include EmailAddressChangeable belongs_to :identity, touch: true diff --git a/app/models/session.rb b/app/models/session.rb index 92d0f20b2..63ef5cdd5 100644 --- a/app/models/session.rb +++ b/app/models/session.rb @@ -1,3 +1,3 @@ -class Session < UntenantedRecord +class Session < ApplicationRecord belongs_to :identity end diff --git a/app/models/untenanted_record.rb b/app/models/untenanted_record.rb deleted file mode 100644 index 94da45603..000000000 --- a/app/models/untenanted_record.rb +++ /dev/null @@ -1,4 +0,0 @@ -class UntenantedRecord < ActiveRecord::Base - self.abstract_class = true - connects_to database: { writing: :untenanted } -end diff --git a/config/database.yml b/config/database.yml index 79ae7d99c..b1383d571 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,25 +1,23 @@ default: &default - adapter: trilogy - host: localhost:33384 - user: root + adapter: sqlite3 pool: 50 timeout: 5000 development: primary: <<: *default - database: fizzy_development + database: storage/fizzy_development.sqlite3 cable: <<: *default - database: fizzy_development_cable + database: storage/development_cable.sqlite3 migrations_paths: db/cable_migrate cache: <<: *default - database: fizzy_development_cache + database: storage/development_cache.sqlite3 migrations_paths: db/cache_migrate queue: <<: *default - database: fizzy_development_queue + database: storage/development_queue.sqlite3 migrations_paths: db/queue_migrate # Warning: The database defined as "test" will be erased and @@ -28,24 +26,23 @@ development: test: primary: <<: *default - database: fizzy_test + database: storage/fizzy_test.sqlite3 production: &production primary: <<: *default - adapter: beamer - database: fizzy_<%= Rails.env %> + database: storage/fizzy_<%= Rails.env %>.sqlite3 cable: <<: *default - database: fizzy_<% Rails.env %>_cable.sqlite3 + database: storage/production_cable.sqlite3 migrations_paths: db/cable_migrate cache: <<: *default - database: fizzy_<% Rails.env %>_cache.sqlite3 + database: storage/production_cache.sqlite3 migrations_paths: db/cache_migrate queue: <<: *default - database: fizzy_<% Rails.env %>_queue.sqlite3 + database: storage/production_queue.sqlite3 migrations_paths: db/queue_migrate beta: *production diff --git a/db/untenanted_migrate/20250924190529_create_identities.rb b/db/migrate/20250924190529_create_identities.rb similarity index 100% rename from db/untenanted_migrate/20250924190529_create_identities.rb rename to db/migrate/20250924190529_create_identities.rb diff --git a/db/untenanted_migrate/20250924190729_create_memberships.rb b/db/migrate/20250924190729_create_memberships.rb similarity index 100% rename from db/untenanted_migrate/20250924190729_create_memberships.rb rename to db/migrate/20250924190729_create_memberships.rb diff --git a/db/untenanted_migrate/20251007112917_create_identity_magic_links.rb b/db/migrate/20251007112917_create_identity_magic_links.rb similarity index 100% rename from db/untenanted_migrate/20251007112917_create_identity_magic_links.rb rename to db/migrate/20251007112917_create_identity_magic_links.rb diff --git a/db/untenanted_migrate/20251015170934_move_email_to_identity.rb b/db/migrate/20251015170934_move_email_to_identity.rb similarity index 100% rename from db/untenanted_migrate/20251015170934_move_email_to_identity.rb rename to db/migrate/20251015170934_move_email_to_identity.rb diff --git a/db/untenanted_migrate/20251015173452_associate_magic_links_to_identities.rb b/db/migrate/20251015173452_associate_magic_links_to_identities.rb similarity index 100% rename from db/untenanted_migrate/20251015173452_associate_magic_links_to_identities.rb rename to db/migrate/20251015173452_associate_magic_links_to_identities.rb diff --git a/db/untenanted_migrate/20251024081104_create_sessions.rb b/db/migrate/20251024081104_create_sessions.rb similarity index 100% rename from db/untenanted_migrate/20251024081104_create_sessions.rb rename to db/migrate/20251024081104_create_sessions.rb diff --git a/db/untenanted_migrate/20251027131911_add_join_code_to_memberships.rb b/db/migrate/20251027131911_add_join_code_to_memberships.rb similarity index 100% rename from db/untenanted_migrate/20251027131911_add_join_code_to_memberships.rb rename to db/migrate/20251027131911_add_join_code_to_memberships.rb diff --git a/db/untenanted_migrate/20251103125952_make_email_addresses_mandatory_on_identities.rb b/db/migrate/20251103125952_make_email_addresses_mandatory_on_identities.rb similarity index 100% rename from db/untenanted_migrate/20251103125952_make_email_addresses_mandatory_on_identities.rb rename to db/migrate/20251103125952_make_email_addresses_mandatory_on_identities.rb diff --git a/db/untenanted_migrate/20251105082803_add_unique_constraint_on_identity_id_and_tenant_to_memberships.rb b/db/migrate/20251105082803_add_unique_constraint_on_identity_id_and_tenant_to_memberships.rb similarity index 100% rename from db/untenanted_migrate/20251105082803_add_unique_constraint_on_identity_id_and_tenant_to_memberships.rb rename to db/migrate/20251105082803_add_unique_constraint_on_identity_id_and_tenant_to_memberships.rb diff --git a/db/schema.rb b/db/schema.rb index 9516f3206..4086b41ba 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -262,6 +262,35 @@ ActiveRecord::Schema[8.2].define(version: 2025_11_06_154151) do t.index ["tag_id"], name: "index_filters_tags_on_tag_id" end + create_table "identities", force: :cascade do |t| + t.datetime "created_at", null: false + t.string "email_address", null: false + t.datetime "updated_at", null: false + t.index ["email_address"], name: "index_identities_on_email_address", unique: true + end + + create_table "magic_links", force: :cascade do |t| + t.string "code", null: false + t.datetime "created_at", null: false + t.datetime "expires_at", null: false + t.integer "identity_id" + t.datetime "updated_at", null: false + t.index ["code"], name: "index_magic_links_on_code", unique: true + t.index ["expires_at"], name: "index_magic_links_on_expires_at" + t.index ["identity_id"], name: "index_magic_links_on_identity_id" + end + + create_table "memberships", force: :cascade do |t| + t.datetime "created_at", null: false + t.integer "identity_id", null: false + t.string "join_code" + t.string "tenant", null: false + t.datetime "updated_at", null: false + t.index ["identity_id"], name: "index_memberships_on_identity_id" + t.index ["tenant", "identity_id"], name: "index_memberships_on_tenant_and_identity_id", unique: true + t.index ["tenant"], name: "index_memberships_on_user_tenant_and_user_id" + end + create_table "mentions", force: :cascade do |t| t.datetime "created_at", null: false t.integer "mentionee_id", null: false @@ -455,6 +484,8 @@ ActiveRecord::Schema[8.2].define(version: 2025_11_06_154151) do add_foreign_key "columns", "boards" add_foreign_key "comments", "cards" add_foreign_key "events", "boards" + add_foreign_key "magic_links", "identities" + add_foreign_key "memberships", "identities" add_foreign_key "mentions", "users", column: "mentionee_id" add_foreign_key "mentions", "users", column: "mentioner_id" add_foreign_key "notification_bundles", "users" diff --git a/db/schema_cache.yml b/db/schema_cache.yml deleted file mode 100644 index f818b58bf..000000000 --- a/db/schema_cache.yml +++ /dev/null @@ -1,2863 +0,0 @@ ---- !ruby/object:ActiveRecord::ConnectionAdapters::SchemaCache -columns: - accesses: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: accessed_at - cast_type: &1 !ruby/object:ActiveRecord::Type::DateTime - precision: 6 - scale: - limit: - timezone: - sql_type_metadata: &2 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: datetime(6) - type: :datetime - limit: - precision: 6 - scale: - 'null': true - default: - default_function: - collation: - comment: - - &22 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: board_id - cast_type: &3 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3Adapter::SQLite3Integer - precision: - scale: - limit: - max: 9223372036854775808 - min: -9223372036854775808 - sql_type_metadata: &4 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: INTEGER - type: :integer - limit: - precision: - scale: - 'null': false - default: - default_function: - collation: - comment: - - &7 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: created_at - cast_type: *1 - sql_type_metadata: *2 - 'null': false - default: - default_function: - collation: - comment: - - &8 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: true - name: id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: involvement - cast_type: &5 !ruby/object:ActiveModel::Type::String - true: t - false: f - precision: - scale: - limit: - sql_type_metadata: &6 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: varchar - type: :string - limit: - precision: - scale: - 'null': false - default: access_only - default_function: - collation: - comment: - - &9 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: updated_at - cast_type: *1 - sql_type_metadata: *2 - 'null': false - default: - default_function: - collation: - comment: - - &28 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: user_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - account_join_codes: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: code - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *7 - - *8 - - *9 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: usage_count - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: 0 - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: usage_limit - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: 10 - default_function: - collation: - comment: - accounts: - - *7 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: external_account_id - cast_type: *3 - sql_type_metadata: *4 - 'null': true - default: - default_function: - collation: - comment: - - *8 - - &10 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: name - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *9 - action_text_rich_texts: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: body - cast_type: &15 !ruby/object:ActiveRecord::Type::Text - true: t - false: f - precision: - scale: - limit: - sql_type_metadata: &16 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: TEXT - type: :text - limit: - precision: - scale: - 'null': true - default: - default_function: - collation: - comment: - - *7 - - *8 - - *10 - - &13 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: record_id - cast_type: &11 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3Adapter::SQLite3Integer - precision: - scale: - limit: - max: 9223372036854775808 - min: -9223372036854775808 - sql_type_metadata: &12 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: bigint - type: :integer - limit: - precision: - scale: - 'null': false - default: - default_function: - collation: - comment: - - &14 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: record_type - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *9 - active_storage_attachments: - - &17 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: blob_id - cast_type: *11 - sql_type_metadata: *12 - 'null': false - default: - default_function: - collation: - comment: - - *7 - - *8 - - *10 - - *13 - - *14 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: slug - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - active_storage_blobs: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: byte_size - cast_type: *11 - sql_type_metadata: *12 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: checksum - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: content_type - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - *7 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: filename - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *8 - - &18 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: key - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: metadata - cast_type: *15 - sql_type_metadata: *16 - 'null': true - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: service_name - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - active_storage_variant_records: - - *17 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: variation_digest - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - ar_internal_metadata: - - *7 - - *18 - - *9 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: value - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - assignees_filters: - - &20 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: assignee_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - &19 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: filter_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - assigners_filters: - - &21 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: assigner_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - *19 - assignments: - - *20 - - *21 - - &23 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: card_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - *7 - - *8 - - *9 - board_publications: - - *22 - - *7 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: key - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - *9 - boards: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: all_access - cast_type: &31 !ruby/object:ActiveModel::Type::Boolean - precision: - scale: - limit: - sql_type_metadata: &32 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: boolean - type: :boolean - limit: - precision: - scale: - 'null': false - default: false - default_function: - collation: - comment: - - *7 - - &24 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: creator_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - *8 - - *10 - - *9 - boards_filters: - - *22 - - *19 - card_activity_spikes: - - *23 - - *7 - - *8 - - *9 - card_engagements: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: card_id - cast_type: *3 - sql_type_metadata: *4 - 'null': true - default: - default_function: - collation: - comment: - - *7 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: status - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: doing - default_function: - collation: - comment: - - *9 - card_goldnesses: - - *23 - - *7 - - *8 - - *9 - card_not_nows: - - *23 - - *7 - - *8 - - *9 - - &25 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: user_id - cast_type: *3 - sql_type_metadata: *4 - 'null': true - default: - default_function: - collation: - comment: - cards: - - *22 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: column_id - cast_type: *3 - sql_type_metadata: *4 - 'null': true - default: - default_function: - collation: - comment: - - *7 - - *24 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: due_on - cast_type: !ruby/object:ActiveRecord::Type::Date - precision: - scale: - limit: - timezone: - sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: date - type: :date - limit: - precision: - scale: - 'null': true - default: - default_function: - collation: - comment: - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: last_active_at - cast_type: *1 - sql_type_metadata: *2 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: status - cast_type: *15 - sql_type_metadata: *16 - 'null': false - default: drafted - default_function: - collation: - comment: - - &34 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: title - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - *9 - closers_filters: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: closer_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - *19 - closures: - - *23 - - *7 - - *8 - - *9 - - *25 - columns: - - *22 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: color - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *7 - - *8 - - *10 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: position - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: 0 - default_function: - collation: - comment: - - *9 - comments: - - *23 - - *7 - - *24 - - *8 - - *9 - creators_filters: - - *24 - - *19 - entropies: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: auto_postpone_period - cast_type: *11 - sql_type_metadata: *12 - 'null': false - default: 2592000 - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: container_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: container_type - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *7 - - *8 - - *9 - events: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: action - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *22 - - *7 - - *24 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: eventable_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: eventable_type - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: particulars - cast_type: &26 !ruby/object:ActiveRecord::Type::Json - precision: - scale: - limit: - sql_type_metadata: &27 !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: json - type: :json - limit: - precision: - scale: - 'null': true - default: "{}" - default_function: - collation: - comment: - - *9 - filters: - - *7 - - *24 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: fields - cast_type: *26 - sql_type_metadata: *27 - 'null': false - default: "{}" - default_function: - collation: - comment: - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: params_digest - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *9 - filters_tags: - - *19 - - &33 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: tag_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - mentions: - - *7 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: mentionee_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: mentioner_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - &29 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: source_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - &30 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: source_type - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *9 - notification_bundles: - - *7 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: ends_at - cast_type: *1 - sql_type_metadata: *2 - 'null': false - default: - default_function: - collation: - comment: - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: starts_at - cast_type: *1 - sql_type_metadata: *2 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: status - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: 0 - default_function: - collation: - comment: - - *9 - - *28 - notifications: - - *7 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: creator_id - cast_type: *3 - sql_type_metadata: *4 - 'null': true - default: - default_function: - collation: - comment: - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: read_at - cast_type: *1 - sql_type_metadata: *2 - 'null': true - default: - default_function: - collation: - comment: - - *29 - - *30 - - *9 - - *28 - pins: - - *23 - - *7 - - *8 - - *9 - - *28 - push_subscriptions: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: auth_key - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - *7 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: endpoint - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: p256dh_key - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - *9 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: user_agent - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - *28 - reactions: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: comment_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: content - cast_type: !ruby/object:ActiveModel::Type::String - true: t - false: f - precision: - scale: - limit: 16 - sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: varchar(16) - type: :string - limit: 16 - precision: - scale: - 'null': false - default: - default_function: - collation: - comment: - - *7 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: reacter_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - *9 - schema_migrations: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: version - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - search_queries: - - *7 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: terms - cast_type: !ruby/object:ActiveModel::Type::String - true: t - false: f - precision: - scale: - limit: 2000 - sql_type_metadata: !ruby/object:ActiveRecord::ConnectionAdapters::SqlTypeMetadata - sql_type: varchar(2000) - type: :string - limit: 2000 - precision: - scale: - 'null': false - default: - default_function: - collation: - comment: - - *9 - - *28 - search_results: - - *7 - - *8 - - *9 - steps: - - *23 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: completed - cast_type: *31 - sql_type_metadata: *32 - 'null': false - default: false - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: content - cast_type: *15 - sql_type_metadata: *16 - 'null': false - default: - default_function: - collation: - comment: - - *7 - - *8 - - *9 - taggings: - - *23 - - *7 - - *8 - - *33 - - *9 - tags: - - *7 - - *8 - - *34 - - *9 - user_settings: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: bundle_email_frequency - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: 0 - default_function: - collation: - comment: - - *7 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: timezone_name - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - *9 - - *28 - users: - - &36 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: active - cast_type: *31 - sql_type_metadata: *32 - 'null': false - default: true - default_function: - collation: - comment: - - *7 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: membership_id - cast_type: *3 - sql_type_metadata: *4 - 'null': true - default: - default_function: - collation: - comment: - - *10 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: role - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: member - default_function: - collation: - comment: - - *9 - watches: - - *23 - - *7 - - *8 - - *9 - - *28 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: watching - cast_type: *31 - sql_type_metadata: *32 - 'null': false - default: true - default_function: - collation: - comment: - webhook_delinquency_trackers: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: consecutive_failures_count - cast_type: *3 - sql_type_metadata: *4 - 'null': true - default: 0 - default_function: - collation: - comment: - - *7 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: first_failure_at - cast_type: *1 - sql_type_metadata: *2 - 'null': true - default: - default_function: - collation: - comment: - - *8 - - *9 - - &35 !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: webhook_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - webhook_deliveries: - - *7 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: event_id - cast_type: *3 - sql_type_metadata: *4 - 'null': false - default: - default_function: - collation: - comment: - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: request - cast_type: *15 - sql_type_metadata: *16 - 'null': true - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: response - cast_type: *15 - sql_type_metadata: *16 - 'null': true - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: state - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - *9 - - *35 - webhooks: - - *36 - - *22 - - *7 - - *8 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: name - cast_type: *5 - sql_type_metadata: *6 - 'null': true - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: signing_secret - cast_type: *5 - sql_type_metadata: *6 - 'null': false - default: - default_function: - collation: - comment: - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: subscribed_actions - cast_type: *15 - sql_type_metadata: *16 - 'null': true - default: - default_function: - collation: - comment: - - *9 - - !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column - auto_increment: - name: url - cast_type: *15 - sql_type_metadata: *16 - 'null': false - default: - default_function: - collation: - comment: -primary_keys: - accesses: id - account_join_codes: id - accounts: id - action_text_rich_texts: id - active_storage_attachments: id - active_storage_blobs: id - active_storage_variant_records: id - ar_internal_metadata: key - assignees_filters: - assigners_filters: - assignments: id - board_publications: id - boards: id - boards_filters: - card_activity_spikes: id - card_engagements: id - card_goldnesses: id - card_not_nows: id - cards: id - closers_filters: - closures: id - columns: id - comments: id - creators_filters: - entropies: id - events: id - filters: id - filters_tags: - mentions: id - notification_bundles: id - notifications: id - pins: id - push_subscriptions: id - reactions: id - schema_migrations: version - search_queries: id - search_results: id - steps: id - taggings: id - tags: id - user_settings: id - users: id - watches: id - webhook_delinquency_trackers: id - webhook_deliveries: id - webhooks: id -data_sources: - accesses: true - account_join_codes: true - accounts: true - action_text_rich_texts: true - active_storage_attachments: true - active_storage_blobs: true - active_storage_variant_records: true - ar_internal_metadata: true - assignees_filters: true - assigners_filters: true - assignments: true - board_publications: true - boards: true - boards_filters: true - card_activity_spikes: true - card_engagements: true - card_goldnesses: true - card_not_nows: true - cards: true - closers_filters: true - closures: true - columns: true - comments: true - creators_filters: true - entropies: true - events: true - filters: true - filters_tags: true - mentions: true - notification_bundles: true - notifications: true - pins: true - push_subscriptions: true - reactions: true - schema_migrations: true - search_queries: true - search_results: true - steps: true - taggings: true - tags: true - user_settings: true - users: true - watches: true - webhook_delinquency_trackers: true - webhook_deliveries: true - webhooks: true -indexes: - accesses: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: accesses - name: index_accesses_on_accessed_at - unique: false - columns: - - accessed_at - lengths: {} - orders: :desc - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: accesses - name: index_accesses_on_board_id - unique: false - columns: - - board_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: accesses - name: index_accesses_on_board_id_and_user_id - unique: true - columns: - - board_id - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: accesses - name: index_accesses_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - account_join_codes: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: account_join_codes - name: index_account_join_codes_on_code - unique: true - columns: - - code - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - accounts: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: accounts - name: index_accounts_on_external_account_id - unique: true - columns: - - external_account_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - action_text_rich_texts: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: action_text_rich_texts - name: index_action_text_rich_texts_uniqueness - unique: true - columns: - - record_type - - record_id - - name - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - active_storage_attachments: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: active_storage_attachments - name: index_active_storage_attachments_on_blob_id - unique: false - columns: - - blob_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: active_storage_attachments - name: index_active_storage_attachments_on_slug - unique: true - columns: - - slug - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: active_storage_attachments - name: index_active_storage_attachments_uniqueness - unique: true - columns: - - record_type - - record_id - - name - - blob_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - active_storage_blobs: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: active_storage_blobs - name: index_active_storage_blobs_on_key - unique: true - columns: - - key - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - active_storage_variant_records: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: active_storage_variant_records - name: index_active_storage_variant_records_uniqueness - unique: true - columns: - - blob_id - - variation_digest - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - ar_internal_metadata: [] - assignees_filters: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: assignees_filters - name: index_assignees_filters_on_assignee_id - unique: false - columns: - - assignee_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: assignees_filters - name: index_assignees_filters_on_filter_id - unique: false - columns: - - filter_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - assigners_filters: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: assigners_filters - name: index_assigners_filters_on_assigner_id - unique: false - columns: - - assigner_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: assigners_filters - name: index_assigners_filters_on_filter_id - unique: false - columns: - - filter_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - assignments: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: assignments - name: index_assignments_on_assignee_id_and_card_id - unique: true - columns: - - assignee_id - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: assignments - name: index_assignments_on_card_id - unique: false - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - board_publications: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: board_publications - name: index_board_publications_on_board_id - unique: false - columns: - - board_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: board_publications - name: index_board_publications_on_key - unique: true - columns: - - key - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - boards: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: boards - name: index_boards_on_creator_id - unique: false - columns: - - creator_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - boards_filters: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: boards_filters - name: index_boards_filters_on_board_id - unique: false - columns: - - board_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: boards_filters - name: index_boards_filters_on_filter_id - unique: false - columns: - - filter_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - card_activity_spikes: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: card_activity_spikes - name: index_card_activity_spikes_on_card_id - unique: false - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - card_engagements: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: card_engagements - name: index_card_engagements_on_card_id - unique: false - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: card_engagements - name: index_card_engagements_on_status - unique: false - columns: - - status - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - card_goldnesses: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: card_goldnesses - name: index_card_goldnesses_on_card_id - unique: true - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - card_not_nows: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: card_not_nows - name: index_card_not_nows_on_card_id - unique: true - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: card_not_nows - name: index_card_not_nows_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - cards: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: cards - name: index_cards_on_board_id - unique: false - columns: - - board_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: cards - name: index_cards_on_column_id - unique: false - columns: - - column_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: cards - name: index_cards_on_last_active_at_and_status - unique: false - columns: - - last_active_at - - status - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - closers_filters: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: closers_filters - name: index_closers_filters_on_closer_id - unique: false - columns: - - closer_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: closers_filters - name: index_closers_filters_on_filter_id - unique: false - columns: - - filter_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - closures: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: closures - name: index_closures_on_card_id - unique: true - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: closures - name: index_closures_on_card_id_and_created_at - unique: false - columns: - - card_id - - created_at - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: closures - name: index_closures_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - columns: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: columns - name: index_columns_on_board_id - unique: false - columns: - - board_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: columns - name: index_columns_on_board_id_and_position - unique: false - columns: - - board_id - - position - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - comments: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: comments - name: index_comments_on_card_id - unique: false - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - creators_filters: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: creators_filters - name: index_creators_filters_on_creator_id - unique: false - columns: - - creator_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: creators_filters - name: index_creators_filters_on_filter_id - unique: false - columns: - - filter_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - entropies: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: entropies - name: idx_on_container_type_container_id_auto_postpone_pe_3d79b50517 - unique: false - columns: - - container_type - - container_id - - auto_postpone_period - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: entropies - name: index_entropy_configurations_on_container - unique: true - columns: - - container_type - - container_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - events: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: events - name: index_events_on_board_id - unique: false - columns: - - board_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: events - name: index_events_on_board_id_and_action_and_created_at - unique: false - columns: - - board_id - - action - - created_at - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: events - name: index_events_on_creator_id - unique: false - columns: - - creator_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: events - name: index_events_on_eventable - unique: false - columns: - - eventable_type - - eventable_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: events - name: index_events_on_summary_id_and_action - unique: false - columns: - - action - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - filters: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: filters - name: index_filters_on_creator_id_and_params_digest - unique: true - columns: - - creator_id - - params_digest - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - filters_tags: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: filters_tags - name: index_filters_tags_on_filter_id - unique: false - columns: - - filter_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: filters_tags - name: index_filters_tags_on_tag_id - unique: false - columns: - - tag_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - mentions: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: mentions - name: index_mentions_on_mentionee_id - unique: false - columns: - - mentionee_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: mentions - name: index_mentions_on_mentioner_id - unique: false - columns: - - mentioner_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: mentions - name: index_mentions_on_source - unique: false - columns: - - source_type - - source_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - notification_bundles: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: notification_bundles - name: idx_on_user_id_starts_at_ends_at_7eae5d3ac5 - unique: false - columns: - - user_id - - starts_at - - ends_at - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: notification_bundles - name: index_notification_bundles_on_ends_at_and_status - unique: false - columns: - - ends_at - - status - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: notification_bundles - name: index_notification_bundles_on_user_id_and_status - unique: false - columns: - - user_id - - status - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - notifications: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: notifications - name: index_notifications_on_creator_id - unique: false - columns: - - creator_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: notifications - name: index_notifications_on_source - unique: false - columns: - - source_type - - source_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: notifications - name: index_notifications_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: notifications - name: index_notifications_on_user_id_and_read_at_and_created_at - unique: false - columns: - - user_id - - read_at - - created_at - lengths: {} - orders: - read_at: :desc - created_at: :desc - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - pins: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: pins - name: index_pins_on_card_id - unique: false - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: pins - name: index_pins_on_card_id_and_user_id - unique: true - columns: - - card_id - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: pins - name: index_pins_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - push_subscriptions: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: push_subscriptions - name: idx_on_endpoint_p256dh_key_auth_key_7553014576 - unique: false - columns: - - endpoint - - p256dh_key - - auth_key - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: push_subscriptions - name: index_push_subscriptions_on_endpoint - unique: false - columns: - - endpoint - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: push_subscriptions - name: index_push_subscriptions_on_user_agent - unique: false - columns: - - user_agent - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: push_subscriptions - name: index_push_subscriptions_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: push_subscriptions - name: index_push_subscriptions_on_user_id_and_endpoint - unique: true - columns: - - user_id - - endpoint - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - reactions: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: reactions - name: index_reactions_on_comment_id - unique: false - columns: - - comment_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: reactions - name: index_reactions_on_reacter_id - unique: false - columns: - - reacter_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - schema_migrations: [] - search_queries: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: search_queries - name: index_search_queries_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: search_queries - name: index_search_queries_on_user_id_and_terms - unique: false - columns: - - user_id - - terms - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: search_queries - name: index_search_queries_on_user_id_and_updated_at - unique: true - columns: - - user_id - - updated_at - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - search_results: [] - steps: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: steps - name: index_steps_on_card_id - unique: false - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: steps - name: index_steps_on_card_id_and_completed - unique: false - columns: - - card_id - - completed - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - taggings: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: taggings - name: index_taggings_on_card_id_and_tag_id - unique: true - columns: - - card_id - - tag_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: taggings - name: index_taggings_on_tag_id - unique: false - columns: - - tag_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - tags: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: tags - name: index_tags_on_title - unique: true - columns: - - title - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - user_settings: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: user_settings - name: index_user_settings_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: user_settings - name: index_user_settings_on_user_id_and_bundle_email_frequency - unique: false - columns: - - user_id - - bundle_email_frequency - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - users: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: users - name: index_users_on_membership_id - unique: false - columns: - - membership_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: users - name: index_users_on_role - unique: false - columns: - - role - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - watches: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: watches - name: index_watches_on_card_id - unique: false - columns: - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: watches - name: index_watches_on_user_id - unique: false - columns: - - user_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: watches - name: index_watches_on_user_id_and_card_id - unique: false - columns: - - user_id - - card_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - webhook_delinquency_trackers: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: webhook_delinquency_trackers - name: index_webhook_delinquency_trackers_on_webhook_id - unique: false - columns: - - webhook_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - webhook_deliveries: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: webhook_deliveries - name: index_webhook_deliveries_on_event_id - unique: false - columns: - - event_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: webhook_deliveries - name: index_webhook_deliveries_on_webhook_id - unique: false - columns: - - webhook_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - webhooks: - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: webhooks - name: index_webhooks_on_board_id - unique: false - columns: - - board_id - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true - - !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition - table: webhooks - name: index_webhooks_on_subscribed_actions - unique: false - columns: - - subscribed_actions - lengths: {} - orders: {} - opclasses: {} - where: - type: - using: - include: - nulls_not_distinct: - comment: - valid: true -version: 20251106154151 diff --git a/db/untenanted_schema.rb b/db/untenanted_schema.rb deleted file mode 100644 index efe4c961b..000000000 --- a/db/untenanted_schema.rb +++ /dev/null @@ -1,55 +0,0 @@ -# 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. -# -# This file is the source Rails uses to define your schema when running `bin/rails -# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to -# be faster and is potentially less error prone than running all of your -# migrations from scratch. Old migrations may fail to apply correctly if those -# migrations use external dependencies or application code. -# -# It's strongly recommended that you check this file into your version control system. - -ActiveRecord::Schema[8.2].define(version: 2025_11_05_082803) do - create_table "identities", force: :cascade do |t| - t.datetime "created_at", null: false - t.string "email_address", null: false - t.datetime "updated_at", null: false - t.index ["email_address"], name: "index_identities_on_email_address", unique: true - end - - create_table "magic_links", force: :cascade do |t| - t.string "code", null: false - t.datetime "created_at", null: false - t.datetime "expires_at", null: false - t.integer "identity_id" - t.datetime "updated_at", null: false - t.index ["code"], name: "index_magic_links_on_code", unique: true - t.index ["expires_at"], name: "index_magic_links_on_expires_at" - t.index ["identity_id"], name: "index_magic_links_on_identity_id" - end - - create_table "memberships", force: :cascade do |t| - t.datetime "created_at", null: false - t.integer "identity_id", null: false - t.string "join_code" - t.string "tenant", null: false - t.datetime "updated_at", null: false - t.index ["identity_id"], name: "index_memberships_on_identity_id" - t.index ["tenant", "identity_id"], name: "index_memberships_on_tenant_and_identity_id", unique: true - t.index ["tenant"], name: "index_memberships_on_user_tenant_and_user_id" - end - - create_table "sessions", force: :cascade do |t| - t.datetime "created_at", null: false - t.integer "identity_id", null: false - t.string "ip_address" - t.datetime "updated_at", null: false - t.string "user_agent" - t.index ["identity_id"], name: "index_sessions_on_identity_id" - end - - add_foreign_key "magic_links", "identities" - add_foreign_key "memberships", "identities" - add_foreign_key "sessions", "identities" -end