From dfc3fa450d62f24961e8c79f3197df1ed72e848f Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Mon, 30 Aug 2021 18:27:34 +0200 Subject: [PATCH] Squash migrations --- .../20210622142112_add_accounts_table.exs | 11 --- .../20210623145023_add_devices_table.exs | 19 ----- ...5812_add_access_token_index_to_devices.exs | 7 -- ...10707123852_add_events_and_rooms_table.exs | 22 ----- ...714150725_change_event_content_to_json.exs | 10 --- ...3944_change_event_timestamp_to_integer.exs | 10 --- .../20210716212330_change_event_id_name.exs | 7 -- ...21639_add_forward_extremities_to_rooms.exs | 9 --- .../20210725151601_add_state_to_room.exs | 9 --- ...10729143750_change_room_state_to_array.exs | 10 --- .../20210730122017_create_aliases_table.exs | 12 --- ..._signing_key_and_server_key_info_table.exs | 19 ----- ...16144214_change_timestamps_to_datetime.exs | 15 ---- .../20210818133912_add_fields_to_events.exs | 11 --- ...20184601_move_timestamps_to_ints_again.exs | 15 ---- ...210823083642_create_joined_rooms_table.exs | 16 ---- .../20210830160818_create_initial_tables.exs | 81 +++++++++++++++++++ priv/repo/seeds.exs | 4 +- 18 files changed, 82 insertions(+), 205 deletions(-) delete mode 100644 priv/repo/migrations/20210622142112_add_accounts_table.exs delete mode 100644 priv/repo/migrations/20210623145023_add_devices_table.exs delete mode 100644 priv/repo/migrations/20210625205812_add_access_token_index_to_devices.exs delete mode 100644 priv/repo/migrations/20210707123852_add_events_and_rooms_table.exs delete mode 100644 priv/repo/migrations/20210714150725_change_event_content_to_json.exs delete mode 100644 priv/repo/migrations/20210715093944_change_event_timestamp_to_integer.exs delete mode 100644 priv/repo/migrations/20210716212330_change_event_id_name.exs delete mode 100644 priv/repo/migrations/20210725121639_add_forward_extremities_to_rooms.exs delete mode 100644 priv/repo/migrations/20210725151601_add_state_to_room.exs delete mode 100644 priv/repo/migrations/20210729143750_change_room_state_to_array.exs delete mode 100644 priv/repo/migrations/20210730122017_create_aliases_table.exs delete mode 100644 priv/repo/migrations/20210812105932_create_signing_key_and_server_key_info_table.exs delete mode 100644 priv/repo/migrations/20210816144214_change_timestamps_to_datetime.exs delete mode 100644 priv/repo/migrations/20210818133912_add_fields_to_events.exs delete mode 100644 priv/repo/migrations/20210820184601_move_timestamps_to_ints_again.exs delete mode 100644 priv/repo/migrations/20210823083642_create_joined_rooms_table.exs create mode 100644 priv/repo/migrations/20210830160818_create_initial_tables.exs diff --git a/priv/repo/migrations/20210622142112_add_accounts_table.exs b/priv/repo/migrations/20210622142112_add_accounts_table.exs deleted file mode 100644 index 45aede3..0000000 --- a/priv/repo/migrations/20210622142112_add_accounts_table.exs +++ /dev/null @@ -1,11 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.AddAccountsTable do - use Ecto.Migration - - def change do - create table(:accounts, primary_key: false) do - add :localpart, :string, primary_key: true, null: false - add :password_hash, :string, size: 60, null: false - timestamps(updated_at: false) - end - end -end diff --git a/priv/repo/migrations/20210623145023_add_devices_table.exs b/priv/repo/migrations/20210623145023_add_devices_table.exs deleted file mode 100644 index cae257e..0000000 --- a/priv/repo/migrations/20210623145023_add_devices_table.exs +++ /dev/null @@ -1,19 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.AddDevicesTable do - use Ecto.Migration - - def change do - create table(:devices, primary_key: false) do - add :device_id, :string, primary_key: true, null: false - add :access_token, :string - add :display_name, :string - - add :localpart, - references(:accounts, column: :localpart, on_delete: :delete_all, type: :string), - primary_key: true, - null: false - end - - # Compound primary already indexes device_id. - create index(:devices, [:localpart]) - end -end diff --git a/priv/repo/migrations/20210625205812_add_access_token_index_to_devices.exs b/priv/repo/migrations/20210625205812_add_access_token_index_to_devices.exs deleted file mode 100644 index 7242c51..0000000 --- a/priv/repo/migrations/20210625205812_add_access_token_index_to_devices.exs +++ /dev/null @@ -1,7 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.AddAccessTokenIndexToDevices do - use Ecto.Migration - - def change do - create index(:devices, [:access_token], unique: true) - end -end diff --git a/priv/repo/migrations/20210707123852_add_events_and_rooms_table.exs b/priv/repo/migrations/20210707123852_add_events_and_rooms_table.exs deleted file mode 100644 index ef25268..0000000 --- a/priv/repo/migrations/20210707123852_add_events_and_rooms_table.exs +++ /dev/null @@ -1,22 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.AddEventsAndRoomsTable do - use Ecto.Migration - - def change do - create table(:rooms, primary_key: false) do - add :id, :string, primary_key: true, null: false - add :visibility, :string, null: false, default: "public" - end - - create table(:events, primary_key: false) do - add :id, :string, primary_key: true, null: false - add :type, :string, null: false - add :timestamp, :naive_datetime, null: false - add :state_key, :string - add :sender, :string, null: false - add :content, :string - add :prev_events, {:array, :string}, null: false - add :auth_events, {:array, :string}, null: false - add :room_id, references(:rooms, type: :string), null: false - end - end -end diff --git a/priv/repo/migrations/20210714150725_change_event_content_to_json.exs b/priv/repo/migrations/20210714150725_change_event_content_to_json.exs deleted file mode 100644 index abdfcf5..0000000 --- a/priv/repo/migrations/20210714150725_change_event_content_to_json.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.ChangeEventContentToJson do - use Ecto.Migration - - def change do - execute( - "alter table events alter column content type jsonb using (content::jsonb);", - "alter table events alter column content type character varying(255);" - ) - end -end diff --git a/priv/repo/migrations/20210715093944_change_event_timestamp_to_integer.exs b/priv/repo/migrations/20210715093944_change_event_timestamp_to_integer.exs deleted file mode 100644 index 78c3ecd..0000000 --- a/priv/repo/migrations/20210715093944_change_event_timestamp_to_integer.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.ChangeEventTimestampToInteger do - use Ecto.Migration - - def change do - alter table(:events) do - remove :timestamp, :string, null: false - add :origin_server_ts, :integer, null: false - end - end -end diff --git a/priv/repo/migrations/20210716212330_change_event_id_name.exs b/priv/repo/migrations/20210716212330_change_event_id_name.exs deleted file mode 100644 index 99129ce..0000000 --- a/priv/repo/migrations/20210716212330_change_event_id_name.exs +++ /dev/null @@ -1,7 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.ChangeEventIdName do - use Ecto.Migration - - def change do - rename table(:events), :id, to: :event_id - end -end diff --git a/priv/repo/migrations/20210725121639_add_forward_extremities_to_rooms.exs b/priv/repo/migrations/20210725121639_add_forward_extremities_to_rooms.exs deleted file mode 100644 index ae1faa2..0000000 --- a/priv/repo/migrations/20210725121639_add_forward_extremities_to_rooms.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.AddForwardExtremitiesToRooms do - use Ecto.Migration - - def change do - alter table(:rooms) do - add :forward_extremities, {:array, :string}, default: [], null: false - end - end -end diff --git a/priv/repo/migrations/20210725151601_add_state_to_room.exs b/priv/repo/migrations/20210725151601_add_state_to_room.exs deleted file mode 100644 index f7bc549..0000000 --- a/priv/repo/migrations/20210725151601_add_state_to_room.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.AddStateToRoom do - use Ecto.Migration - - def change do - alter table(:rooms) do - add :state, :map, default: %{}, null: false - end - end -end diff --git a/priv/repo/migrations/20210729143750_change_room_state_to_array.exs b/priv/repo/migrations/20210729143750_change_room_state_to_array.exs deleted file mode 100644 index 80304e8..0000000 --- a/priv/repo/migrations/20210729143750_change_room_state_to_array.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.ChangeRoomStateToArray do - use Ecto.Migration - - def change do - alter table(:rooms) do - remove :state, :map, default: %{}, null: false - add :state, {:array, {:array, :string}}, default: [], null: false - end - end -end diff --git a/priv/repo/migrations/20210730122017_create_aliases_table.exs b/priv/repo/migrations/20210730122017_create_aliases_table.exs deleted file mode 100644 index b5f8df8..0000000 --- a/priv/repo/migrations/20210730122017_create_aliases_table.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.CreateAliasesTable do - use Ecto.Migration - - def change do - create table(:aliases, primary_key: false) do - add :alias, :string, primary_key: true, null: false - add :room_id, references(:rooms, type: :string, on_delete: :delete_all), null: false - end - - create index(:aliases, [:room_id]) - end -end diff --git a/priv/repo/migrations/20210812105932_create_signing_key_and_server_key_info_table.exs b/priv/repo/migrations/20210812105932_create_signing_key_and_server_key_info_table.exs deleted file mode 100644 index 04a1692..0000000 --- a/priv/repo/migrations/20210812105932_create_signing_key_and_server_key_info_table.exs +++ /dev/null @@ -1,19 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.CreateSigningKeyAndServerKeyInfoTable do - use Ecto.Migration - - def change do - create table(:server_key_info, primary_key: false) do - add :server_name, :string, primary_key: true, null: false - add :valid_until, :bigint, default: 0, null: false - end - - create table(:signing_keys, primary_key: false) do - add :server_name, - references(:server_key_info, column: :server_name, type: :string, on_delete: :delete_all), - null: false - - add :signing_key_id, :string, primary_key: true, null: false - add :signing_key, :binary, null: false - end - end -end diff --git a/priv/repo/migrations/20210816144214_change_timestamps_to_datetime.exs b/priv/repo/migrations/20210816144214_change_timestamps_to_datetime.exs deleted file mode 100644 index e4e3eae..0000000 --- a/priv/repo/migrations/20210816144214_change_timestamps_to_datetime.exs +++ /dev/null @@ -1,15 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.ChangeTimestampsToDatetime do - use Ecto.Migration - - def change do - alter table(:events) do - remove :origin_server_ts, :integer, null: false - add :origin_server_ts, :utc_datetime_usec, null: false - end - - alter table(:server_key_info) do - remove :valid_until, :bigint, default: 0, null: false - add :valid_until, :utc_datetime_usec, null: false - end - end -end diff --git a/priv/repo/migrations/20210818133912_add_fields_to_events.exs b/priv/repo/migrations/20210818133912_add_fields_to_events.exs deleted file mode 100644 index 2c53bcf..0000000 --- a/priv/repo/migrations/20210818133912_add_fields_to_events.exs +++ /dev/null @@ -1,11 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.AddFieldsToEvents do - use Ecto.Migration - - def change do - alter table(:events) do - add :unsigned, :map, default: %{}, null: true - add :hashes, :map, null: false - add :signatures, :map, null: false - end - end -end diff --git a/priv/repo/migrations/20210820184601_move_timestamps_to_ints_again.exs b/priv/repo/migrations/20210820184601_move_timestamps_to_ints_again.exs deleted file mode 100644 index b834440..0000000 --- a/priv/repo/migrations/20210820184601_move_timestamps_to_ints_again.exs +++ /dev/null @@ -1,15 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.MoveTimestampsToIntsAgain do - use Ecto.Migration - - def change do - alter table(:events) do - remove :origin_server_ts, :utc_datetime_usec, null: false - add :origin_server_ts, :bigint, null: false - end - - alter table(:server_key_info) do - remove :valid_until, :utc_datetime_usec, null: false - add :valid_until, :bigint, default: 0, null: false - end - end -end diff --git a/priv/repo/migrations/20210823083642_create_joined_rooms_table.exs b/priv/repo/migrations/20210823083642_create_joined_rooms_table.exs deleted file mode 100644 index a26b0f6..0000000 --- a/priv/repo/migrations/20210823083642_create_joined_rooms_table.exs +++ /dev/null @@ -1,16 +0,0 @@ -defmodule MatrixServer.Repo.Migrations.CreateJoinedRoomsTable do - use Ecto.Migration - - def change do - create table(:joined_rooms, primary_key: false) do - add :localpart, - references(:accounts, column: :localpart, type: :string), - primary_key: true, - null: false - - add :room_id, references(:rooms, type: :string), - primary_key: true, - null: false - end - end -end diff --git a/priv/repo/migrations/20210830160818_create_initial_tables.exs b/priv/repo/migrations/20210830160818_create_initial_tables.exs new file mode 100644 index 0000000..cb2e2e8 --- /dev/null +++ b/priv/repo/migrations/20210830160818_create_initial_tables.exs @@ -0,0 +1,81 @@ +defmodule MatrixServer.Repo.Migrations.CreateInitialTables do + use Ecto.Migration + + def change do + create table(:accounts, primary_key: false) do + add :localpart, :string, primary_key: true, null: false + add :password_hash, :string, size: 60, null: false + timestamps(updated_at: false) + end + + create table(:rooms, primary_key: false) do + add :state, {:array, {:array, :string}}, default: [], null: false + add :forward_extremities, {:array, :string}, default: [], null: false + add :id, :string, primary_key: true, null: false + add :visibility, :string, null: false, default: "public" + end + + create table(:joined_rooms, primary_key: false) do + add :localpart, + references(:accounts, column: :localpart, type: :string), + primary_key: true, + null: false + + add :room_id, references(:rooms, type: :string), + primary_key: true, + null: false + end + + create table(:events, primary_key: false) do + add :origin_server_ts, :bigint, null: false + add :unsigned, :map, default: %{}, null: true + add :hashes, :map, null: false + add :signatures, :map, null: false + add :event_id, :string, null: false + add :content, :map + add :type, :string, null: false + add :state_key, :string + add :sender, :string, null: false + add :prev_events, {:array, :string}, null: false + add :auth_events, {:array, :string}, null: false + add :room_id, references(:rooms, type: :string), null: false + end + + create table(:server_key_info, primary_key: false) do + add :valid_until, :bigint, default: 0, null: false + add :server_name, :string, primary_key: true, null: false + end + + create table(:signing_keys, primary_key: false) do + add :server_name, + references(:server_key_info, column: :server_name, type: :string, on_delete: :delete_all), + null: false + + add :signing_key_id, :string, primary_key: true, null: false + add :signing_key, :binary, null: false + end + + create table(:aliases, primary_key: false) do + add :alias, :string, primary_key: true, null: false + add :room_id, references(:rooms, type: :string, on_delete: :delete_all), null: false + end + + create index(:aliases, [:room_id]) + + create table(:devices, primary_key: false) do + add :device_id, :string, primary_key: true, null: false + add :access_token, :string + add :display_name, :string + + add :localpart, + references(:accounts, column: :localpart, on_delete: :delete_all, type: :string), + primary_key: true, + null: false + end + + # Compound primary already indexes device_id. + create index(:devices, [:localpart]) + + create index(:devices, [:access_token], unique: true) + end +end diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs index f492e90..ef17929 100644 --- a/priv/repo/seeds.exs +++ b/priv/repo/seeds.exs @@ -1,6 +1,4 @@ -alias MatrixServer.{Repo, Room, Event, Account, Device} - -timestamp = fn n -> DateTime.from_unix!(n, :microsecond) end +alias MatrixServer.{Repo, Account, Device} Repo.insert!(%Account{ localpart: "chuck",