- Radio context with QSO schema and CSV import script (58K contacts) - Solar index schema, GFZ client, and daily Oban cron worker - LiveView dashboard with QSO table and weather correlation views - Parallelize weather import script using Task.async_stream (10 concurrent workers) - Replace sequential rate_limit sleeps with concurrency-based backpressure - Atomic progress counter for interleave-safe reporting
20 lines
551 B
Elixir
20 lines
551 B
Elixir
defmodule Microwaveprop.Repo.Migrations.CreateQsos do
|
|
use Ecto.Migration
|
|
|
|
def change do
|
|
create table(:qsos, primary_key: false) do
|
|
add :id, :binary_id, primary_key: true
|
|
add :station1, :string, null: false
|
|
add :station2, :string, null: false
|
|
add :qso_timestamp, :utc_datetime, null: false
|
|
add :grid1, :string
|
|
add :grid2, :string
|
|
add :pos1, :map
|
|
add :pos2, :map
|
|
add :mode, :string, null: false
|
|
add :band, :decimal, null: false
|
|
|
|
timestamps(type: :utc_datetime)
|
|
end
|
|
end
|
|
end
|