All checks were successful
deploy / deploy (push) Successful in 3m42s
Scans page blocks and nav items for broken URLs (internal via DB lookup, external via HTTP HEAD). Daily Oban cron at 03:30, plus on-demand checks when pages are saved. Admin UI tab on redirects page with re-check, ignore, and clickable source links. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21 lines
588 B
Elixir
21 lines
588 B
Elixir
defmodule Berrypod.Repo.Migrations.CreateDeadLinks do
|
|
use Ecto.Migration
|
|
|
|
def change do
|
|
create table(:dead_links, primary_key: false) do
|
|
add :id, :binary_id, primary_key: true
|
|
add :url, :string, null: false
|
|
add :url_type, :string, null: false, default: "external"
|
|
add :status, :string, null: false, default: "broken"
|
|
add :http_status, :integer
|
|
add :error, :string
|
|
add :last_checked_at, :utc_datetime, null: false
|
|
|
|
timestamps()
|
|
end
|
|
|
|
create unique_index(:dead_links, [:url])
|
|
create index(:dead_links, [:status])
|
|
end
|
|
end
|