- 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
19 lines
504 B
Elixir
19 lines
504 B
Elixir
defmodule Microwaveprop.Repo.Migrations.CreateSolarIndices do
|
|
use Ecto.Migration
|
|
|
|
def change do
|
|
create table(:solar_indices, primary_key: false) do
|
|
add :id, :binary_id, primary_key: true
|
|
add :date, :date, null: false
|
|
add :sfi, :float
|
|
add :sfi_adjusted, :float
|
|
add :sunspot_number, :integer
|
|
add :ap_index, :integer
|
|
add :kp_values, {:array, :float}
|
|
|
|
timestamps(type: :utc_datetime)
|
|
end
|
|
|
|
create unique_index(:solar_indices, [:date])
|
|
end
|
|
end
|